我对运行java程序的过程感到困惑,也许你可以提供帮助。虽然提供了jar文件,但未找到java类
我有几个.java文件在~/working_dir/org/project/
有主要功能,我想打包它们在一个罐子里运行它们。我做的:
cd ~/working_dir/org/projectname
javac -classpath $CLASSPATH *.java
cd ~/working_dir/
jar cf myjar.jar org/
然后尝试做运行在罐子的一类: java -cp myjar.jar org.project.SomeClass
,并得到
Exception in thread "main" java.lang.NoClassDefFoundError: org/project/SomeClass
Could not find the main class: org.project.SomeClass
我该怎么办错了吗?这些类没有任何错误编译,并且jar tf myjar.jar
表明它们确实存在。据我所知,我不需要创建一个Manifest文件,因为我提供了我希望在运行时运行main函数的类 - 或者我在这里错了吗?
非常感谢!
贵org.project.SomeClass.java文件有'包org.project;在顶部'声明? – nos 2010-06-26 20:21:00
尝试列出'jar tf myjar.jar'的输出。对于org.project。SomeClass被发现,org/project/SomeClass.class条目必须存在(具有这个名字) – 2010-06-26 21:00:02
是的,它有一个'package org.project;'语句和'jar tf myjar.jar'显示它为org /项目/ SomeClass – 2010-06-27 10:11:30