-------android培训、java培训、期待与您交流! ----------
设置临时path
set path = C:\JavaJDK\bin;%path%
set JAVA_HOME = C:\JavaJDK;
set path = %JAVA_HOME%\bin;%path%//使用这种方式较通用。JAVA_HOME改变的时候不影响path
设置临时classpath
set classpath = C:\MyClass//这种情况下,虚拟机加载class的时候就不会再当前目录加载class文件
set classpath = C:\MyClass;//这种结尾带分号的情况下虚拟机会在指定目录找不到class的时候去当前目录找,不推荐使用
set classpath = .;C:\MyClass//.代表当前目录,推荐使用这种方式设定classpath
如果类带有包名例如:package x.xx.xxx;,在当前路径下编译时:javac -d . PakageDemo.java
运行时java x.xx.xxx.Demo
如果你的类是有包语句的,那么执行的时候就必须带着包名:java a1.b1.c1.PakageDemo
如果你的classpath=xxx\x\xx\xxx,结尾没有带分号或者开头没有带“.”,则虚拟机启动后不会再当前路径下找class文件。
这时你执行java a1.b1.c1.PakageDemo肯定会出错,这句代码实际上虚拟机是去xxx\x\xx\xxx\x\xx\xxx这样的路径中找class文件。显然不存在这样的路径。所以执行出错。
如果你在xxx\x\xx\xxx下面建立的目录结构如下:xxx\x\xx\xxx\x\xx\xxx,然后把你的类:xxx\x\xx\xxx\PackageDemo.class文件放到xxx\x\xx\xxx\x\xx\xxx下面,在执行java x.xx.xxx.PakageDemo语句的时候就不会错误了。
总结:路径没有理解正确。解决方法就是设置classpath=.;xxx\a\b\c或者classpath=xxx\a\b\c;这样就能解决问题。