用JCREATOR编程的时候总是出现错误: 找不到或无法加载主类 com.sun.tools.javac.Main 怎么回事!

用JCREATOR编程的时候总是出现错误: 找不到或无法加载主类 com.sun.tools.javac.Main 怎么回事!,第1张

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files\Java\jdk160_10\bin;

我的path值是这么多,其中包含了SQL Server

xp系统,默认值可以在网上找

附:

windows xp下配置JDK环境变量:

1安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk150_08;

  2安装完成后,右击“我的电脑”,点击“属性”;

3选择“高级”选项卡,点击“环境变量”;

4在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”;

5JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:\java\jdk150_08,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依此变量);

Path使得系统可以在任何路径下识别java命令,设为:

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

  CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:

;%JAVA_HOME%\lib\dtjar;%JAVA_HOME%\lib\toolsjar (要加表示当前路径)

%JAVA_HOME%就是引用前面指定的JAVA_HOME;

6“开始”->;“运行”,键入“cmd”;

7键入命令“java -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;

8好了,打完收工。下面开始你的第一个java程序吧。

应该是使用了过时的方法,你的Stampjava里面的代码,使用了一些JDK自带包里面,且声明已经过时的方法,不影响程序的运行,只是提示而已,可以查看API文档,用比较新的方法替换就可以了

生成的class是由于你编译java文件后自动生成的,那个class文件名和你在java文件里命名的class类同名

所以只要那个类存在,编译之后就会生成同名文件,改变类内部代码对其类名无影响

应该是路径问题,你先不用jcreator,直接手动用javac编译看看,是否可以

javac参数

让我们通过javac /来查看javac的参数

我们从了解以下参数来进一步理解java路径:

-classpath,-sourcepath,-d

-classpath为java编译时查找的路径和在 *** 作系统里制定的意义相同。但是当在javac中制定-classpath时, *** 作系统里指定的classpath将会在此javac运行期间无效。

-sourcepath,当javac编译若是查找不到所需要的class文件,默认情况下它会在当前目录查找class所对应的java文件,若是存在,则自动编译好后再次定位class文件。但是若是源文件没有放在当前目录下(注意class文件要和 *** 作系统文件格式相对应,也就是说Ab class对应的应该是A目录下的bjava文件。)则可以通过-soucepath来指定源文件可能所在的目录。

-d,javac编译默认情况是在java所在的目录生成二进制文件class,当源文件不在同一个classpath下时,就会造成程序发布或者运行很困难。-d的意义在于自动在制定路径下按照将程序编译出来的二进制文件按照类所对应的 *** 作系统目录文件形式存放。

下面我们写两个程序介绍下这几个参数的意义。

HelloWordjava

package A;

import BHelloName;

public class HelloWord {

public static void main(String[] args) {

HelloName peple = new HelloName();

Systemoutprintln("Hello Word" +peplename);

}

}HelloNamejava

package B;

public class HelloName {

public String name ="Tom";

}

简单的解释下代码意义:HelloWord和HelloName分别为A,B两个包内的类在运行AHelloWord时需要调用BHelloName类(实际是生成HelloName的实例)。

我们先将这两个文件保存在E:\下,当我们使用javac编译时:javac HelloWordjava马上会发现无法编译,原因是查找不到BHelloName的类。根据前面讲述的classpath我们很容易知道该怎么解决这个问题:将他们分别放置到各自相对应的目录中去。

然后我们再来编译:javac A\HelloWordjava。ok,一切都正常,在用java AHelloWord运行一遍,显示出“Hello Word Tom”说明编译成功且可以运行。

现在我们删除所有的class文件将B目录(包括里面的HelloNamejava)文件移入到F:\下,如此一来,当我们再次编译javac HelloWordjava时依然无法查找到BHelloName类,这时我们可以试试-sourcepath这个参数了,在E:\下编译:javac–soucepath f:\ A\HelloWordjava。编译将正常进行且无任何错误抛出。而且可以查看到,每个java源文件相同的目录下都生成了其对应的class文件。

最后当我们想运行和发布时会发现,凌乱的class和java源文件的不同目录造成运行和发布的 *** 作困难,此时我们应当再次了解javac的-d参数。再次在E:\目录下(先建立classes目录)使用一下命令编译:javac–soucepath f:\ -d e:\classes A\HelloWordjava。这时E:\classes下会按照java类路径需求自动生成相应的目录。此例中你会看到classes下有两个目录 A和B,而A,B目录下则存放着所需要的class文件。

完全卸载JCreator 要干净 重装一次

然后正确设置JDK位置

如果还不对 那么说明JCreator版本已经和现在的JDK不兼容了

你可能是升级到最新的JDK了吧

你先安装最新的jdk然后再安装JCreator 这样JCreator 就会自动的找到jdk的按转路径,当然了如果你是不是默认安装,那么在JCreator 询问jdk的安装路径时你选择jdk的安装路径就可以了。

你也可以先安装JCreator 然后在edit里面选择jdk的安装路径,然后调试程序就可以了!!

以上就是关于用JCREATOR编程的时候总是出现错误: 找不到或无法加载主类 com.sun.tools.javac.Main 怎么回事!全部的内容,包括:用JCREATOR编程的时候总是出现错误: 找不到或无法加载主类 com.sun.tools.javac.Main 怎么回事!、jcreator在运行时出现这样的提示求高手、Jcreator的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10210100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存