我无法在 Ubuntu 18.04.4 中打开 .jar 文件

我无法在 Ubuntu 18.04.4 中打开 .jar 文件

我是 Linux 新手,需要 Java 应用方面的帮助。我有一些从其他移动设备导入的 .jar 文件。我已从 安装了default-jre软件包apt。启动 时java -jar app.jar,我收到no main manifest attribute错误消息。请帮忙。

附言:我既不拥有这些软件包,也不了解任何有关 Java 编程的知识。

答案1

jar 文件中必须包含 MANIFEST 文件,该文件会告诉编译器哪个类具有 main 方法。由于 jar 文件中缺少此文件/信息,因此您需要知道此类的完全限定名称,例如

java -cp app.jar com.somepackage.SomeClass

即使我们没有源文件,我们也可以找到这个特殊的类。例如,下载一个没有源文件的 helloworldmain manifest attribute文件java2s.com

mkdir hello && mv helloworld-2.2.jar.zip hello
unzip helloworld-2.2.jar.zip
unzip helloworld-2-2.jar
grep -nr main .

这是输出

Binary file ./org/glassfish/jersey/examples/helloworld/App.class matches

在这里我们知道哪个文件包含 main 方法。要获取“完全限定类名”,我们将“/”替换为“。”。现在我们有两个选择

  1. 我们将类名传递给 java 命令。

    java -cp helloworld-2.2.jar org.glassfish.jersey.examples.helloworld.App

  2. 安装 default-jdk,并使用此类名更新 jar 清单文件

jar -uvfe helloworld-2.2.jar org.glassfish.jersey.examples.helloworld.App
java -jar helloworld-2.2.jar 

相关内容