在PATH 变量后面加上“%JAVA_HOME%\bin;%PATH%”,javac 编译说找不到文件,现在只有%JAVA_HOME%\bin;%PATH%,能编译了,但是又出现了:exception in thread "main"java.lang.NOClassDefFoundErro:a <wrong name :test/a> 请各位
给点意见。还有,谁知道win 7 本原来的PATH值是多少,谢谢,
给点意见。还有,谁知道win 7 本原来的PATH值是多少,谢谢,
你cmd 运行 java -version
然后 再java 和 javac 看看
如果都行的话 应该没有什么问题
你自己再网上找找环境变量 很多的
但是这回 在DOS下运行,他说JAVAC 不是内部或外部命令了,
等您赐教,谢谢
或者你的E:\JAVA下没有直接的BIN路径,是否还有什么jdk一类的路径之后才有bin路径?
你可以在dos窗口试试
set path=E:\JAVA\BIN;%path%
set classpath==.;E:\JAVA\LIB\DT.JAR;E:\JAVA\LIB\TOOLS.JAR;
1 path是java.exe所在的目录,就是java运行的时候,去哪儿调用java.exe这个命令,一般是在jdk下面的bin目录下,所以path里面添加一个路径+Java\jdkXXX\bin,比如我的是C:\Program Files\Java\jdk1.6.0_20\bin。
path对应的不仅是java,你安装的应用程序在执行的时候去哪儿找可执行文件的目录呢,就是通过path
2 classpath是java在执行一个程序的时候,这个程序引用了其他的类,java去哪儿找这些类呢,classpath告诉java,你通过classpath里面的内容就可以找到。在最初你可能只用到了JDK提供的jar,这些jar都放在jdk目录下的lib文件里面,所以添加classpath就是添加一个路径+Java\jdkXXX\lib\xxx.jar 比如我的是.;C:\Program Files\Java\jdk1.6.0_20\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_20\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_20\lib\jconsole.jar
注意,千万别忘了.; 这是表示当前路径。至于JAVA_HOME,就跟程序里面的常量定义一样,你用的话,下次修改JDK路径就方便,不用的话就一个个修改,可有可无的东西
比如我在d:\test\下面定义了一个包socket,在socket下面定义了一个Hello.java程序,编译之后没有问题,但是dos运行java Hello的时候就会报exception in thread "main"java.lang.NOClassDefFoundErro:a <wrong name :test/a>这类的错误
这个问题的原因往往是你在socket目录下直接运行java Hello,这种用法是错误的,应该在test目录下执行 java socket.Hello我刚学的时候也在这个问题上纠缠了很久,其实只要你弄懂了原理,设置path和classpath就是很随意的事