您的位置:首页 > 编程语言 > Java开发

javac 不是内部或外部命令 和 错误 找不到或无法加载主类 的解决方法

2016-10-08 00:09 906 查看
使用package语句与import语句。

实验要求:按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及自定义包中的类。掌握一些重要的操作步骤。

代码:

模板1:将模板1给出的Java源文件命名为SquareEquation.java,将编译后得到的字节码文件复制到c:\1000\tom\jiafei目录中。

SquareEquation.java
package tom.jiafei;
public class SquareEquation
{
double a,b,c;
double root1,root2;
boolean boo;
public  SquareEquation(double a,double b,double c)
{
this.a=a;
this.b=b;
this.c=c;
if(a!=0)
{
boo=true;
}
else
{
boo=false;
}
}
public void  getRoots()
{
if(boo)
{
System.out.println("是一元2次方程");
double disk=b*b-4*a*c;
if(disk>=0)
{
root1=(-b+Math.sqrt(disk))/(2*a);
root2=(-b-Math.sqrt(disk))/(2*a);
System.out.printf("方程的根:%f,%f\n",root1,root2);
}
else
{
System.out.printf("方程没有实根\n");
}
}
else
{
System.out.println("不是一元2次方程");
}
}
public void setCoefficient(double a,double b,double c)
{
this.a=a;
this.b=b;
this.c=c;
if(a!=0)
{
boo=true;
}
else
{
boo=false;
}
}
}


模板2 :将模板2给出的Java源程序SunRise.java保存到d:\2000中。在编译模板2给出的Java源文件之前,要重新设置classpath。假设本地机SDK的安装目录是E:\jdk1.8。在命令行执行如下命令:set classpath=e:\jdk1.8\jre\lib\rt.jar;.;c:\1000;或用鼠标右键点击“我的电脑”,弹出快捷菜单,然后选择“属性”命令,弹出“系统属性”对话框,再单击该对话框中的“高级”选项卡,然后单击“环境变量”按钮。将classpath的值修改为:E:\jdk1.5\jre\lib\rt.jar;.;c:\1000然后重新打开一个命令行窗口,编译模板2给出的Java源程序。

SunRise.java
import tom.jiafei.*;
class SunRise
{
public static void main(String args[])
{
SquareEquation equation=new SquareEquation(4,5,1);
equation.getRoots();
equation.setCoefficient(-3,4,5);
equation.getRoots();
}
}


这个需求中遇到两个BUG!

一 : javac 不是内部或外部命令

注意三个设置

JAVA_HOME  D:\java\jdk1.8.0_65 (这个是我的)
CLASSPATH  .;%JAVA_HOME%\lib
PATH       %JAVA_HOME%\bin;


之后 javac 就成功了

二:找不到或无法加载主类

我们前面已经将模板1中的
SquareEquation.java
javac
编译之后放在了
C:\1000\tom\jiafei
下,现在在模板二中出现找不到或者无法加载主类的错误,实际上java运行主类如果没有默认包就是当前.class文件的目录,如果有包,需要从包上一级目录找主类。

下面我把目录切换到D盘下就正确了:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐