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

Could not find or load main class test (again)

之前已经问过几次类似的问题,但 none 帮助了我。请提供解决方案。

这在 eclipse 中工作正常,但我无法在 cmd(Windows)

中运行

我创建了一个包含一些 classes 的 jar 文件,其中有一些静态方法(jar 中没有主要的 class),我想将它导入到 java 文件中(其中有 main()) 和 运行 它。

编译成功但执行时报错

could not find or load main class test

jar 文件和 java 文件都在同一目录中

编译我在做

javac -cp file.jar test.java

执行

java -cp file.jar test

我在搜索不同的答案时尝试了以下方法,但 none 有效:

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 文件名,但错误是一样的。

如果你有 Test.java:

package my.pack;
public class Test {...}

此文件应位于执行这些内容的文件夹下的子文件夹 my\pack 中:

java -cp .;file.jar my.pack.Test

如果你在class测试(或测试)中没有包声明,

java -cp .;file.jar Test
java -cp .;file.jar test

应该可以。

如果您的主要 Java class (test) 被声明在包 pkg 中并且它 不在 中一个“.jar”,但只是一个“test.class”文件,然后:

  1. 创建一个直接子目录pkg

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

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

    java -cp .;support.jar pkg.test