猿问

尽管对可执行 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

任何想法,我在这里做错了什么?


摇曳的蔷薇
浏览 167回答 1
1回答

慕的地10843

在 bin\com\mftest 文件夹中,我现在输入 jar cmvf Manifest.txt Test.jar *.class 来创建文件 bin\com\mftest\Test.jar我想我看到了你的问题。如果您运行,jar tvf Test.jar我希望您会看到Test.classJAR 文件中文件的路径是"/Test.class". 应该是"/com/mftest/Test.class"。您的错误是将目录更改为bin\com\mftest. 您应该已经从bin目录中创建了 JAR 文件,以使 JAR 中的路径名正确。请注意,您包含在 JAR 中的清单文件可以在任何地方。您只需要在jar命令中为其提供正确的(文件系统)路径。
随时随地看视频慕课网APP

相关分类

Java
我要回答