以前曾多次询问类似问题,但没有人帮助过我。请提供解决方案。
这在eclipse中运行正常,但我无法在cmd(Windows)
中运行它我创建了一个包含几个类的jar文件,这些类有一些静态方法(jar中没有主类),我想将它导入java文件(有main()
)并运行它。
它成功编译但在执行时会出错
无法找到或加载主类测试
jar文件和java文件都在同一目录
中编译我在做
javac -cp file.jar test.java
执行
java -cp file.jar test
我在搜索不同的答案时尝试了以下但没有效果:
java -cp file.jar:. test
java -cp .:file.jar test
请指导我做错了什么。
此处 test.java :
import pkg.classname;
class test {
public static void main(String[] args) {
...
}
}
这是 jar tf
的输出:
$ jar tf file.jar
META-INF/MANIFEST.MF
pkg/classname.class
pkg/others.class
PS:我故意尝试提供无效的jar文件名,但错误相同。
答案 0 :(得分:0)
如果您有Test.java:
package my.pack;
public class Test {...}
此文件应位于您执行内容的文件夹下面的子文件夹my \ pack中:
java -cp .;file.jar my.pack.Test
如果在Test(或test)类中没有package语句,
java -cp .;file.jar Test
java -cp .;file.jar test
应该有用。
答案 1 :(得分:0)
如果您的主要Java类(test
)声明位于包pkg
中且不在" .jar&#34中;,但只是一个" test.class
"文件,然后:
立即创建子目录pkg
将主test.class
文件放在该子目录
假设您的支持库是support.jar
,请运行:
java -cp .;support.jar pkg.test