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

Java 无法找到或加载主类测试(再次),java,jar,Java,Jar,类似的问题以前曾被问过好几次,但都没有帮到我。请提供解决方案 这在eclipse中运行良好,但我无法在cmd(Windows)中运行它 我已经创建了一个jar文件,其中包含几个具有一些静态方法的类(jar中没有主类),我想将其导入一个java文件(具有main())并运行它 它编译成功,但执行时出错 无法找到或加载主类测试 jar文件和java文件都在同一个目录中 我在做什么 javac -cp file.jar test.java 执行 java -cp file.jar test 我在搜

类似的问题以前曾被问过好几次,但都没有帮到我。请提供解决方案

这在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 file.jar

META-INF/MANIFEST.MF
pkg/classname.class
pkg/others.class
下面是jar tf的输出:

import pkg.classname;
class test {
    public static void main(String[] args) {
        ...
    }       
}
$ 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
如果在类测试(或测试)中没有包语句

应该可以工作。

如果您的主Java类(
test
)声明在package
pkg
中,并且它不在“.jar”中,而只是一个“
test.class
”文件中,那么:

  • 创建一个立即子目录
    pkg

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

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

    java-cp。;support.jar pkg.test


  • 请不要过早结束问题,我保证在问题解决后立即删除。您是否在test.java中有
    声明?将“jar tvf file.jar”的输出添加到问题中。以及test.class的位置。你能展示一下test.java吗?是的,这个类在一个包中。IMHO,删除这个问题。好吧,你称它为test-请调整。它真的在子文件夹中吗?它同意Jayan的评论…您的代码在类测试中没有显示
    语句。
    错误:无法找到或加载主类pkg.classname.test
    我尝试了这个
    java-cp。;file.jar pkg.classname.test
    那么,请在问题中向类测试提供包语句好吗?或者删除这个。很公平,我只是不知道如何在评论中清楚地展示一个漫长的过程。我应该删除?是的,这是堆栈溢出的痛点之一。我认为这个问题相当于浪费每个人的时间,因为Raghuv没有提供准确的信息。我打算结束这个问题。让我们摆脱它的痛苦(或我们的痛苦)。