无法运行.jar文件/java.jar:第1行:public:命令未找到

问题描述 投票:0回答:1

我有Ubuntu 16.04。

并下载了一个带有tar.gz文件扩展名的JDK,并按照This wikihow进行安装。

当我尝试运行.jar游戏(比如Minecraft)它运行成功,我已经下载了netbeans,它连接到同一个JDK并编译了一些我可以在终端中运行的程序,但是当我键入:

./Hello_world.jar

这是:

package main;

public class project {

   public static void main(String[] args) {
      System.out.println("Hello world");
   }  
}

我得到这个输出:

./Hello_world.jar: line 1: $'PK\003\004': command not found
./Hello_world.jar: line 2: $'\b.\020oK': command not found
./Hello_world.jar: line 3: syntax error near unexpected token `)'
./Hello_world.jar: line 3:-oK�}����META-INF/MANIFEST.MFM�1
                                                        �0��@��uHh          Q���X� ��N1�Ҧ$)��7�(�p�ww
�A����|��}�1���ή�n��p<�Рŗ��:CpN~�s�ν�˚�3��%
                                                 ��)���goPK`
java linux jar
1个回答
1
投票

简单:JAR文件不是可执行文件。您只能通过告诉shell到./command来调用二进制文件/脚本。

它们是包含已编译Java类的存档。

因此你使用它们像:

java -jar somejar.jar

这将启动一个java虚拟机,并告诉它打开给定的JAR文件。然后,JVM将根据可以备份到JAR文件的元信息运行“主”类,然后“运行”该主类。

(假设相应的JAR文件已构建在为什么允许像这样运行它。有关如何启用运行JAR文件的“简单方法”的详细信息,请参阅here

以防万一:有了一些脚本魔术,你实际上可以将一个JAR文件变成一个“二进制”,例如参见here

© www.soinside.com 2019 - 2024. All rights reserved.