基本上我是在学习一个可执行jar文件的编译过程。因此,为此,在一个目录中src\com\mftest,我有一个名为 的文件Test.java,其中包含以下内容。package com.mftest;public class Test{ public static void main(String args[]) { System.out.println("Hello from Test!"); }}现在,从主文件夹(一个包含src文件夹),我也有文件夹bin,我输入javac -d bin src\com\mftest\Test.java. 这将创建文件bin\com\mftest\Test.class。然后,在文件夹中bin\com\mftest,我创建了一个Manifest.txt包含以下内容的文件。请注意,这里有两行,第二行为空。Main-Class: com.mftest.Test在bin\com\mftest文件夹中,我现在键入jar cmvf Manifest.txt Test.jar *.class以创建文件bin\com\mftest\Test.jar. 我希望该文件是可执行的,但是当我尝试通过键入运行它时java -jar Test.jar,出现以下错误。Error: Could not find or load main class com.mftest.TestCaused by: java.lang.ClassNotFoundException: com.mftest.Test任何想法,我在这里做错了什么?
1 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
在 bin\com\mftest 文件夹中,我现在输入 jar cmvf Manifest.txt Test.jar *.class 来创建文件 bin\com\mftest\Test.jar
我想我看到了你的问题。
如果您运行,jar tvf Test.jar
我希望您会看到Test.class
JAR 文件中文件的路径是"/Test.class"
. 应该是"/com/mftest/Test.class"
。
您的错误是将目录更改为bin\com\mftest
. 您应该已经从bin
目录中创建了 JAR 文件,以使 JAR 中的路径名正确。
请注意,您包含在 JAR 中的清单文件可以在任何地方。您只需要在jar
命令中为其提供正确的(文件系统)路径。
添加回答
举报
0/150
提交
取消