A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李永康 中级黑马   /  2013-4-13 22:00  /  3472 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李永康 于 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, 下载次数: 28)

微博桌面截图_20130413215814.jpg

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

12 个回复

倒序浏览
你的这个程序应该没有导包吧????你导包后试试,应该没问题的。。。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
你用cmd编译!是因为你的源文件里面设置了package,把那个去掉!cmd就能编译!这个纯属个人经验~!
回复 使用道具 举报
奋斗的小猪 发表于 2013-4-13 22:12
你的这个程序应该没有导包吧????你导包后试试,应该没问题的。。。

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

没有,这只是测试javac命令而已,没有实际代码
回复 使用道具 举报
Could not find the main class: com.sun.tools.javac.Main.你看一下是不是tools.jar这个工具包不在指定的地点了呀,这个应该在lib目录下
回复 使用道具 举报
把tools.jar和dt.jar加到你的类路径下
回复 使用道具 举报
这个是没有导入包的原因导致的;
回复 使用道具 举报
本帖最后由 陈中岩 于 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文件夹在不在。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
你好,可能出现的问题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了!
回复 使用道具 举报
额  出现的各种问题,实在解决不了。删了JDK  重装了  搞定。
回复 使用道具 举报
Sword 金牌黑马 2013-4-14 22:48:40
13#
配置环境变量的时候除了问题,建议重新配置一下环境变量

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

----------------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”,

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马