java - 这两个命令行执行.jar的区别?

标签 java linux shell command-line executable-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?”

最佳答案

正常情况下,如果任何文件试图直接由 Linux 终端执行,文件头信息应该被 OS 识别。 例如:

#!/bin/bash
echo "Hello World"

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

你可以看到操作系统会理解第一个脚本应该由/bin/bash 解释器运行,第二个是 python 解释器。

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

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

相关文章:

linux - 如何创建一个 git 别名以递归地在所有子模块上运行命令?

shell - 手动实现 mkstemp

linux - 为什么 bash 在通过 make 执行时不支持 !(...) 模式(w/SHELL :=/bin/bash)?

Java 静态实例 VS get 方法

java - 合并大文件而不将整个文件加载到内存中?

linux - 使用 bash 编辑文本文件并显示输出

linux - 根据列排序命令 bash 对制表符分隔文件进行排序

java - 检查在移动屏幕上滑动是否加载新元素

java - 使用windows域认证进行认证

php - 当我将我的 webapp 上传到 linux 服务器时,laravel 页面不工作