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

时间:2017-11-15 12:21:23

标签: java linux jar

我有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`

1 个答案:

答案 0 :(得分:1)

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

它们是 archives ,包含已编译的Java类。

因此你使用它们:

java -jar somejar.jar

这将启动一个java虚拟机,并告诉它打开给定的JAR文件。然后JVM将确定&#34; main&#34;从可以备份到JAR文件的元信息中运行的类 - 然后运行&#34;运行&#34;主要课程。

(假设相应的JAR文件已构建在为什么允许这样运行它。请参阅here以获取有关如何启用此操作的详细信息&#34;运行JAR文件的简单方法)

以防万一:有了一些脚本魔术,你实际上可以把一个JAR文件变成一个&#34;二进制&#34;,例如见here