2016-04-27 61 views
0

当我执行一个.jar使用此命令行(这是在脚本中发现了一个命令):这两个命令行执行.jar之间的区别?

./MyJar.jar AUTO 

我有这些错误:

./MyJar.jar: 1: ./MyJar.jar: PK: not found 
./MyJar.jar: 2: ./MyJar.jar:: not found 
./MyJar.jar: 3: ./MyJar.jar: ��H: not found 
./MyJar.jar: 4: ./MyJar.jar:: not found 
./MyJar.jar: 5: ./MyJar.jar: Ant-Version:: not found 
./MyJar.jar: 6: ./MyJar.jar: Syntax error: "(" unexpected 

但是,当我执行这个命令行,它的工作原理:

java -jar MyJar.jar 
  1. 我的第一个问题是:“什么是这两个命令行之间的差别”
  2. 我的第二个问题是:“为什么我无法使用第一个命令行执行MyJar.jar?”
+1

为什么你不使用谷歌找到如何运行jar文件? Jar不是可执行文件。这只是Java的档案,需要java发射器才能运行。这就是为什么你首先需要java命令。 – mariusz2108

+0

实际上,第一个命令行工作在同事机器上,但不在我的机器上。我想知道为什么。我没有发现任何关于谷歌的第一个命令。 – bam500

+0

阅读[如何制作JAR文件Linux可执行文件](https://coderwall.com/p/ssuaxa/how-to-make-a-jar-file-linux-executable) – Andreas

回答

1

我找到了第二个问题的答案。为了能够执行我的罐子是这样的:

./MyJar.jar AUTO 

我需要安装binfmt支持包:

sudo apt-get install binfmt-support 

正如mentionned在这个题目:https://askubuntu.com/a/291514

1

通常如果有文件试图由Linux终端直接执行文件头信息应由OS标识。 例如:

#!/bin/bash 
echo "Hello World" 

#!/usr/bin/python 
print "Hello World" 

你可以看到OS会明白一号脚本应该由/斌/ bash的解释和第二运行是Python解释器。

它似乎操作系统不了解如何执行您的./MyJar.jar文件。 但jar可以直接了解你的文件内容

+0

谢谢@FariZ给你回复。你回答我的第一个问题! – bam500