无法找到或加载主类测试(再次)

时间:2015-03-01 06:35:32

标签: java jar

以前曾多次询问类似问题,但没有人帮助过我。请提供解决方案。

这在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文件名,但错误相同。

2 个答案:

答案 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"文件,然后:

  1. 立即创建子目录pkg

  2. 将主test.class文件放在该子目录

  3. 假设您的支持库是support.jar,请运行:

    java -cp .;support.jar pkg.test