在windows下编译java,由于是临时测试一下文件,不想改classpath,就在命令行中用 -cp 或classpath引入jar包,用javac编译成功,便使用java带-cp 或classpath运行类是却失败,提示“找不到或无法加载主类”,我的java源文件没有包名。
H:\temp6\project\src>javac -cp dom4j-1.6.1.jar XmlTest.java
H:\temp6\project\src>
H:\temp6\project\src>java -classpath ./dom4j-1.6.1.jar XmlTest
错误: 找不到或无法加载主类 XmlTest
H:\temp6\project\src>java -classpath dom4j-1.6.1.jar XmlTest
错误: 找不到或无法加载主类 XmlTest
在网上溜达了一圈没有找到答案,都说是classpath的问题,要在classpath中加上.; 看了一下我的电脑的环境变量
H:\temp6\project\src>set classpath
classpath=.;D:\jdk1.8.0_05\lib;D:\jdk1.8.0_05\lib\tools.jar 明明有.;
再在图形界面上看,也是有.;,但是问题依旧存在。
,后来看到classpath,一个念头想到,难道是-classpath参数临时改变了系统参数?将命令行的系统变量限制在本行-classpath 后面的路径中? 于是参数改成这样
H:\temp6\project\src>java -classpath .;./dom4j-1.6.1.jar XmlTest
-----------原xml内容------------
<?xml version="1.0" encoding="GBK"?>
<doc>
<person>
<name>周五</name>
<address>
<add ID="A0001">
可以了!
# 也就是在-classpath 后面要加上.;, 原来,用了-classpath参数,则系统自身的classpath就不起作用了,所以用了-classpath参数,后面关联的包的路径、类的路径都要带上