ubuntu下運行jar檔的問題

ubuntu下運行jar檔的問題

為什麼.jar當我像這樣運行腳本時它會運行 java -jar myfile.jar,但是當我像這樣執行它時它不運行 ./myfile.jar

答案1

當您執行 jar 時,java -jar myfile.jar您正在告訴 shell 執行該java命令並向其傳遞一些可以理解的參數java。但是,當您使用它來運行它時,./myfile.jar您會要求外殼程式確定運行它的中斷器,但它無法做到這一點。

shell 在腳本開頭尋找 shebang 行,以了解使用哪個應用程式執行腳本,這就是為什麼您會看到以以下內容開頭的 shell 腳本:

#!/bin/bash

或 python 腳本以

#!/usr/bin/python

/bin/bash基本上,您告訴 shell 的是使用您在或處找到的應用程式來執行腳本/usr/bin/python。對於您的 jar 文件,shell 無法找到 shebang,因此它不知道如何執行程式碼。

過去我使用包裝腳本來執行 Java 應用程序,因此類似於:

#!/bin/bash

java -jar /path/to/myfile.jar

然後您只需使用該命令使該可執行文件成為可執行文件,chmod您就可以像執行任何其他 shell 腳本一樣運行它。

答案2

我已經使用 sudo apt-get install openjdk-7-jdk 安裝了 jdk 並使用 sudo apt-get install openjdk-7-jre 安裝了 jre 但我仍然面臨這個問題。我認為這可能是由於我的系統無法找到java路徑的原因。最後,當我使用以下命令安裝 oracle jdk7 安裝程式時,我可以使用 ./myfile.jar 命令執行 .jar 檔案。我使用以下命令來安裝它:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get 更新

sudo apt-get install oracle-jdk7-installer

相關內容