【发布时间】:2019-02-24 17:49:52
【问题描述】:
基本上我是在学习一个可执行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
任何想法,我在这里做错了什么?
【问题讨论】:
-
我已经阅读了所有这些答案,这就是我知道我必须添加此清单文件的原因。我这样做了,但仍然收到错误。
-
抱歉,这行不通。第一个答案是关于源路径和类路径必须如何组合在一起的length。 com/mftest 是类名的一部分,因此层次结构必须匹配。
-
@GhostCat。别担心,我现在可以正常工作了。
标签: java jar manifest executable executable-jar