尽管对可执行 jar 使用清单文件,但我仍然收到 "Could not find or load main class" 错误
I keep getting "Could not find or load main class" error despite using a Manifest file for an executable jar
基本上我是在学习一个可执行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.Test
Caused by: java.lang.ClassNotFoundException: com.mftest.Test
知道吗,我在这里犯了什么错误?
From within the bin\com\mftest folder, I now type jar cmvf Manifest.txt Test.jar *.class to create the file 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
命令中为其提供正确的(文件系统)路径。
基本上我是在学习一个可执行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.Test
Caused by: java.lang.ClassNotFoundException: com.mftest.Test
知道吗,我在这里犯了什么错误?
From within the bin\com\mftest folder, I now type jar cmvf Manifest.txt Test.jar *.class to create the file 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
命令中为其提供正确的(文件系统)路径。