当我使用此命令行执行.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

我的第一个问题是:“这两个命令行有什么区别?”
我的第二个问题是:“为什么我不能用第一个命令行执行My jar.jar?”

最佳答案

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

#!/bin/bash
echo "Hello World"


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

您可以看到OS将理解第一个脚本应该由/bin/bash解释器运行,第二个是python解释器。
操作系统似乎不理解如何执行./MyJar.jar文件。
但是jar可以直接理解您的文件内容

关于java - 这两个命令行执行.jar的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36894691/

10-12 05:14