Java 无法找到或加载主类测试(再次)
类似的问题以前曾被问过好几次,但都没有帮到我。请提供解决方案 这在eclipse中运行良好,但我无法在cmd(Windows)中运行它 我已经创建了一个jar文件,其中包含几个具有一些静态方法的类(jar中没有主类),我想将其导入一个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 我在搜
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
)声明在packagepkg
中,并且它不在“.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没有提供准确的信息。我打算结束这个问题。让我们摆脱它的痛苦(或我们的痛苦)。