黑马程序员技术交流社区

标题: javac的问题 [打印本页]

作者: 李永康    时间: 2013-4-13 22:00
标题: javac的问题
本帖最后由 李永康 于 2013-4-14 23:03 编辑

     最近一直使用eclipse没有使用文本编译器。然后呢,javac命令出错。
C:\Users\lyk>javac
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/M
ain
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.Main
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: com.sun.tools.javac.Main.  Program will exit.

如图:


javac编译不了,java命令是对的,但是在ecplise中可以使用。为什么呢?

微博桌面截图_20130413215814.jpg (25.53 KB, 下载次数: 50)

微博桌面截图_20130413215814.jpg

作者: 奋斗的小猪    时间: 2013-4-13 22:12
你的这个程序应该没有导包吧????你导包后试试,应该没问题的。。。
作者: Asan    时间: 2013-4-13 22:14
你用cmd编译!是因为你的源文件里面设置了package,把那个去掉!cmd就能编译!这个纯属个人经验~!
作者: 李永康    时间: 2013-4-13 22:31
奋斗的小猪 发表于 2013-4-13 22:12
你的这个程序应该没有导包吧????你导包后试试,应该没问题的。。。

没有,这只是测试javac命令而已,没有实际代码
作者: 李永康    时间: 2013-4-13 22:31
Asan 发表于 2013-4-13 22:14
你用cmd编译!是因为你的源文件里面设置了package,把那个去掉!cmd就能编译!这个纯属个人经验~! ...

没有,这只是测试javac命令而已,没有实际代码
作者: 刘策    时间: 2013-4-13 22:33
Could not find the main class: com.sun.tools.javac.Main.你看一下是不是tools.jar这个工具包不在指定的地点了呀,这个应该在lib目录下
作者: ①人←①城市    时间: 2013-4-13 22:59
把tools.jar和dt.jar加到你的类路径下
作者: 崔宝东    时间: 2013-4-13 23:24
这个是没有导入包的原因导致的;
作者: 陈中岩    时间: 2013-4-14 08:24
本帖最后由 陈中岩 于 2013-4-14 08:25 编辑

不知道楼主的问题解决了没有,
首先:楼主的问题,是因为导包问题导致的。
建议楼主重新配置一下环境变量
配置环境变量:
java_home: C:\……\jdk1.6.0
path:      C:\……\jdk1.6.0\bin
classpath: C:\……\jdk1.6.0\lib ; .
-------------------------
补充一句,貌似eclipse的jvm是自带的,所以在eclipse中可以运行。还有,去看一下你环境变量配置下的lib文件夹在不在。
作者: 黄玉昆    时间: 2013-4-14 14:13
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
作者: 451505680    时间: 2013-4-14 21:33
你好,可能出现的问题1,你使用Eclipse是否首行使用了package,若果是用//注释了,就可以用了,如果还是无法使用,你可以看一下你的环境变量参数是否设置正确,我的classpath=.;D:\java\java编程\lib\dt.jar;D:\java\java编程\lib\tools.jar;path=D:\java\java编程\bin;注意classpath前加点分号,环境变量如果设置正确,你的程序肯定能运行,如果不配置环境变量,那么你也可以把你的JAVA文件复制到bin目录下去编译,然后运行,如果还不行,那你就要重装JDK了!
作者: 李永康    时间: 2013-4-14 21:56
额  出现的各种问题,实在解决不了。删了JDK  重装了  搞定。
作者: Sword    时间: 2013-4-14 22:48
配置环境变量的时候除了问题,建议重新配置一下环境变量

右击【我的电脑】---【属性】-----【高级】---【环境变量】,

----------------JAVA----------------
JAVA_HOME
C:\Program Files\Java\jdk1.6.0_05

注意:JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径,此路径下包括lib,bin,jre等文件夹。

-------------------------------
Path
%JAVA_HOME%\bin;

在系统变量Path的值的最前面加入.
否则可能在运行时,系统选择部署在前面的jre环境。

注意:Path使得系统可以在任何路径下识别java命令

-------------------------------
CLASSPATH
.;%JAVA_HOME%\lib

注意: 点好表示当前目录,不能省略

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

-------------------------------

测试

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2