Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建可执行Java Jar文件时遇到问题_Java_Executable Jar - Fatal编程技术网

创建可执行Java Jar文件时遇到问题

创建可执行Java Jar文件时遇到问题,java,executable-jar,Java,Executable Jar,我有以下Java代码。它完成了它的本意,但我在创建jar文件时遇到了问题 import java.io.*; public class openfile{ public static void main(String argv[]) { try { String line; Process p = Runtime.getRuntime().exec ("c:\\Users\\u

我有以下Java代码。它完成了它的本意,但我在创建jar文件时遇到了问题

import java.io.*;
public class openfile{
    public static void main(String argv[]) {
        try {
                String line;
                Process p = Runtime.getRuntime().exec
                ("c:\\Users\\user\\Desktop\\"+ "shares.bat /A");
                 BufferedReader input =
                 new BufferedReader
                 (new InputStreamReader(p.getInputStream()));
                 input.close();
                }
           catch (Exception err) {
                  err.printStackTrace();
               }
    }
}
它编译没有问题,使用java openfile时运行没有问题。当我尝试使用以下命令创建jar文件时,会出现问题:

  jar cf MyJar.jar manifest.txt openfile.java openfile.class
但是,当我尝试使用

java -jar MyJar.jar
我收到以下错误消息:

Failed to load Main-Class manifest attribute from MyJar.jar
manifest.txt的文本如下:

Main-Class: openfile 
Main-Class: openfile 

知道我做错了什么吗?

我想我遇到了问题

在manifest.txt文件中

manifest.txt的文本如下:

Main-Class: openfile 
Main-Class: openfile 
您需要在最后一行之后提供换行符


所以只需键入Enter(假设您有一个声明了main方法的openfile类,那么这应该可以工作:

jar cvef MyJar.jar openfile openfile.class
如果您已经有清单并希望包含它,请尝试以下操作:

jar cvmf MyJar.jar manifest.txt openfile.class

清单文件的内容必须如下所示:

清单版本:1.0
主类:openfile


在这两行之后必须留下一个空行,因为不留下它可能会产生问题。

Hi,感谢您的响应。尝试了此操作后仍然出现相同的错误。我从头开始。删除了旧的manifest.txt,在新文件中键入该行,然后按Enter按钮(以便光标位于新行上),保存了文件并创建了新的jar文件。没有任何区别。我认为您没有使用
jar cfm MyJar.jar manifest.txt openfile.class openfile.java
u应该使用m选项,否则它将提供一个没有类定义的默认清单文件。我再次检查了..我工作正常..u r缺少m选项Hi,尝试了两个版本此答案无效。您好,尝试了此答案,但仍然存在相同的问题。如果您查看上面的两个答案,它似乎不起作用。我的系统是否可能存在配置问题?请尝试提取文件并查看内容。内容必须是:1)包含manifest.txt文件的Meta Inf文件夹2)和otherfile.class文件(meta-inf文件夹外)如果存在,它应该工作。HI Logan,提取jar文件,它包含openfile.class文件和meta-inf文件夹,meta-inf文件夹包含清单文件,清单文件包含以下内容(超过3行):清单版本:1.0创建人:1.6.0_21(Sun Microsystems Inc.)主类:openfile,但我仍然收到相同的错误。我的java配置是否可能有问题?我不确定java配置。删除由……….创建的行,并确保主类行后有一个空行。如果该空行不存在,jar将无法工作。(我说的空行是指,在主类之后转到第行并按enter键一次)。祝你好运。另外,我的清单文件扩展名是.MF,请尝试更改它,如果它有效,请告诉我。