Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.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 如何从.class生成.jar_Java - Fatal编程技术网

Java 如何从.class生成.jar

Java 如何从.class生成.jar,java,Java,我有一个working.class文件,但是当我使用 jar cvf MyJar.jar *.class I无法打开生成的MyJar.jar: 无法启动Java JAR文件“MyJar.JAR”。请检查 控制台以获取可能的错误消息。“ 谢谢你的帮助 ========== 编辑: manifest.txt: Main-Class: MyClass 正如在注释中提到的,您需要将清单添加到您的jar中。调用它manifest.txt,并且必须至少有以下行: Main-Class: YourClas

我有一个working.class文件,但是当我使用

jar cvf MyJar.jar *.class
I无法打开生成的MyJar.jar:

无法启动Java JAR文件“MyJar.JAR”。请检查 控制台以获取可能的错误消息。“

谢谢你的帮助

========== 编辑:

manifest.txt:

Main-Class: MyClass

正如在注释中提到的,您需要将清单添加到您的jar中。调用它manifest.txt,并且必须至少有以下行:

Main-Class: YourClass
# remove comment, but leave empty line
YourClass与YourClass.class文件同名,没有扩展名,并且该类必须具有main方法(public static void main,字符串[]args)

如果在子目录中有主类,则必须使用它们(它们被视为包。例如,如果有目录com/foo/YourClass.class

Main-Class: com.foo.YourClass
# remove comment, but leave empty line
然后把它装进你的罐子里:

jar cvfm MyJarName.jar manifest.txt *.class
欲了解更多信息,请参阅

编辑:

我建议至少使用maven。如果你有其他的依赖关系,会让生活变得更轻松。然后你添加并配置maven jar插件,这会为你做很多事情

编辑:

或者,您不需要使用manifest文件,但可以通过以下命令实现所有这些

jar cvfe MyJarName.jar MyClass *.class
在哪里
e-指定入口点-MyClass在您的案例中

您是如何试图“打开”jar的?您是否检查了控制台中的错误消息?那么它是错误的,因为没有这样的类。至少我没有看到任何AtomViewer.class类there@Lukino抱歉,我的意思是MyClass.class按需要运行。如果MyClass.class有main方法(一个有签名的public static void main(字符串[]args))然后应该使用**main Class:MyClass。谢谢。MyClass有main方法,使用了main Class:MyClass,但无法启动.jar文件。发生这种情况的任何其他原因?我添加了manifest.txt,我得到了如下内容:添加的manifest添加:MyClass.Class(in=1605)(out=849)(缩减47%)添加:MyClassCanvas.class(in=610)(out=369)(缩减39%)添加:MyClassFrame$AlternateBasis.class(in=2532)(out=1463)(缩减42%)..…结果是.jar仍然无法启动。您使用的是tar还是jar?请参阅我文章末尾的链接并阅读该页。谢谢。我使用了jar并按照您发布的说明操作。仍然无法生成可执行的jar。@Alicia:我在1个示例中输入了错别字,但在第2个示例中没有问题。它应该是主类而不是主类。如果没有帮助,请编辑您的你正在构建的目录结构的问题。哪个类有你使用的manifest.txt的主要方法和内容,所以我可以复制它。原始的帖子编辑,AtomViewer.class根据需要运行。
jar cvfe MyJarName.jar MyClass *.class