2012-03-12 71 views
0

我的java程序是在Windows機器上編寫的,我試圖在Ubuntu 10.04機器上安裝並運行它。我創建了一個.tar.gz文件,其中包含myProgram.jar以及一個lib文件夾中的5個支持庫.jar文件。我在哪裏放這些文件?我需要將它在Linux機器上解壓縮到usr/bin文件夾嗎? shell腳本是否進入tar.gz?我已經讀過,如果你在windows機器上編寫shell腳本,當你將它移動到Linux機器時,你可能會遇到問題,所以我正在使用gedit在Linux機器上編寫shell腳本。我只是不確定接下來要做什麼。 所以在我的腳本到目前爲止,我有,嘗試在Ubuntu 10.04上從shell腳本運行java應用程序

#!/bin/bash 
java -jar myProgram.jar 

我要嘗試並提取tar.gz文件到usr/bin目錄,看看它是否運行。 任何建議或幫助將不勝感激。 在此先感謝, Ray

回答

0

你的問題是相當「廣泛」:)。我希望你找到以下有用的東西。

不要將文件解壓到/ usr/bin。見例如http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard關於不把文件放在* nix系統上的位置和位置。

  1. 將罐子提取到例如/選擇/ yourProgram/*。
  2. shell腳本也應該在那裏。確保它的可執行文件(即chmod 755 script.sh)
  3. 在您的shell腳本中,在調用java之前,請爲您的程序添加cd /opt/yourProgram以獲得正確的工作目錄。
  4. 如果你想讓這個程序能夠被所有人輕鬆地創建一個符號鏈接/usr/bin或更好的/usr/local/bin指向你的腳本。在所有其他工作完成後,將其作爲最後一步。

在您的shell腳本中,您必須將其他jar添加到classpath中,例如

java -cp lib/some.jar:lib/other.jar -jar myProgram.jar

java -cp lib/some.jar:lib/other.jar:myProgram.jar com.acme.ClassContainingMain

推薦做法:添加set -e在腳本

之初正如你已經提到它被認爲是有害的使用Windows來編輯shell腳本編輯。原因是Windows編輯器會以不同的方式編碼換行符(即您按Return鍵)。這將使bash嘔吐:)

+0

謝謝馬丁。這絕對讓我朝着正確的方向前進。如果再次卡住,我會創建一個新問題。 – Ray 2012-03-13 13:23:49

0

我不太清楚你在找什麼。

如果您已將腳本和myprogram.jar放在同一級別,那麼您編寫的腳本應該工作得很好。

而且我不知道你的myprogram.jar是如何引用相關的庫。所以不能評論他們。最好的辦法是將您的腳本和所有jar放在一起,然後嘗試運行腳本。

+0

我已經保存我的腳本myProgram.sh在桌面上,這是我有我的程序相同的地方。jar和一個包含其他.jar文件的lib文件夾。當我嘗試通過雙擊運行.sh文件時,它會在gedit中打開它。如果我嘗試使用「java -jar myProgram.jar」從終端運行.jar文件,「我無法訪問jarfile myProgram.jar」。 – Ray 2012-03-12 13:52:59

+0

* .sh文件是否可執行? – MartinK 2012-03-12 14:54:15

+0

檢查.sh文件是否需要執行權限。然後鍵入./myProgram.sh – prasann 2012-03-13 04:44:19