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