为什么我设置了classpath还是找不到类
代码里我就引了一个POI的类。如果我不引其他的Jar包程序就能运行正常,但我引了其他的包后,就会报Exceptioninthread"main"java.lang.NoC...
代码里我就引了一个POI的类。如果我不引其他的Jar包程序就能运行正常,但我引了其他的包后,就会报
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/hssf/u
sermodel/HSSFWorkbook
at package01.f.main(f.java:11)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.hssf.usermodel.HSSFW
orkbook
就是找不到类的错误
我是想在CMD下运行。
我试着写java -cp poi.jar -jar aaa.jar,来运行,还是报上面的错,这是什么原因。
代码如下。
package package01;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class f {
public static void main(String[] args) {
HSSFWorkbook wb = new HSSFWorkbook();
}
}
我在MANIFEST.MF文件中加入了Class-Path: poi.jar之后,就可以正常运行了。
为什么使用java -classpath就不可以呢,是我机器的问题?还是Java虚拟机有什么说法? 展开
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/hssf/u
sermodel/HSSFWorkbook
at package01.f.main(f.java:11)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.hssf.usermodel.HSSFW
orkbook
就是找不到类的错误
我是想在CMD下运行。
我试着写java -cp poi.jar -jar aaa.jar,来运行,还是报上面的错,这是什么原因。
代码如下。
package package01;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class f {
public static void main(String[] args) {
HSSFWorkbook wb = new HSSFWorkbook();
}
}
我在MANIFEST.MF文件中加入了Class-Path: poi.jar之后,就可以正常运行了。
为什么使用java -classpath就不可以呢,是我机器的问题?还是Java虚拟机有什么说法? 展开
4个回答
展开全部
照这样写准行,
变量名:JAVA_HOME
变量值:E:\jdk1.6.0_24
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\mysql-connector-java-5.1.17-bin.jar
变量名:PATH
变量值:%JAVA_HOME%\bin
如果要连接数据库记住把数据库驱动mysql-connector-java-5.1.17-bin.jar拷到E:\jdk1.6.0_24\lib下。我的jdk在E:盘。根据你的jdk改一下。改完以后一定要重新启动才有效,这点一定要记住。碰见好多人说不重启也可以,其实是不行的。环境变量必须重启。重启后进入命令行,输入javac或者java测试一下,如果没反应说明你的jdk有问题,如果有反应你在运行程序就不会有问题。
如果还有问题,就是有可能你的.class文件是以前编译的可能出问题了,再用javac命令重新编译后在执行就行了。
jdk tomcat都用绿色的啊。别安装麻烦的很。这种问题,一般不是电脑的问题,我以前也把责任推给电脑,结果最后总是冤枉好人。
变量名:JAVA_HOME
变量值:E:\jdk1.6.0_24
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\mysql-connector-java-5.1.17-bin.jar
变量名:PATH
变量值:%JAVA_HOME%\bin
如果要连接数据库记住把数据库驱动mysql-connector-java-5.1.17-bin.jar拷到E:\jdk1.6.0_24\lib下。我的jdk在E:盘。根据你的jdk改一下。改完以后一定要重新启动才有效,这点一定要记住。碰见好多人说不重启也可以,其实是不行的。环境变量必须重启。重启后进入命令行,输入javac或者java测试一下,如果没反应说明你的jdk有问题,如果有反应你在运行程序就不会有问题。
如果还有问题,就是有可能你的.class文件是以前编译的可能出问题了,再用javac命令重新编译后在执行就行了。
jdk tomcat都用绿色的啊。别安装麻烦的很。这种问题,一般不是电脑的问题,我以前也把责任推给电脑,结果最后总是冤枉好人。
展开全部
java -verbose:class -cp poi.jar aaa.jar 用 -verbose:class 来打印类加载的日志过程,碰碰运气吧。一般出错的可能是某个文件没找到或它引用句的类找不到呢。
你是在哪个目录下运行的?那个 poi.jar 和 aaa.jar 都是在当前目录吗?
你是在哪个目录下运行的?那个 poi.jar 和 aaa.jar 都是在当前目录吗?
追问
恩,都在当前目录操作的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你还是用eclipse 直接导入包 这些命令 不用你输入 就能运行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
引用其它包的时候,如何写的呢
windows中要这样
java -cp poi.jar;c:\java\lib\log4j.jar -jar aaa.jar
注意分隔符号
windows中要这样
java -cp poi.jar;c:\java\lib\log4j.jar -jar aaa.jar
注意分隔符号
追问
我也是这么写的,可是这样写还是报找不到类,是不是用java -jar的命令来运行Jar包,classpath参数无效?还是什么。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询