2012-04-26 92 views
0

我想在Linux中運行一個Java程序並將其工作目錄更改爲特定位置。我對Linux有一點點小菜,所以我需要相當多的幫助。我設法弄明白這一點:Linux程序更改java程序的工作目錄

java -jar program.jar 

這將運行它選擇的工作目錄中的程序。現在我需要找到一種方法來改變工作目錄。我認爲這臺電腦正在運行UBuntu(或者你拼寫它),但我不確定。我也在使用權限嚴格受限的帳戶運行。

+0

[更改Java中的當前工作目錄η]可能重複(http://stackoverflow.com/questions/840190/changing-the-current工作目錄在爪哇) – home 2012-04-26 19:27:37

+0

鏈接tal ks關於正在運行的java程序無法更改自己的工作目錄。到目前爲止,看起來這可能是關於在啓動時選擇目錄,這可能是不同的。 – 2012-04-26 19:32:55

+0

@ChrisStratton:'並改變它的工作目錄 - 這個問題是關於改變它自己的工作目錄。 – 2012-05-14 05:49:37

回答

4

EDIT(基於下面提問者的評論給出的信息):

所以,好像你只需要一個批處理腳本cd到其自己目錄啓動Java之前。

像這樣的腳本應該這樣做。

#!/bin/bash 
DIR=`dirname "$BASH_SOURCE[0]"` 
cd "$DIR" 
echo "Current dir: $DIR" 
javaw -jar program.jar & 

所以,要確保它的可執行文件(chmod +x minecraft.sh),那麼當您雙擊它或運行任何文件夾中的腳本,它將把腳本的文件夾作爲其工作目錄。更多信息可在SO questions like this one中找到。

我不打算安裝的Minecraft,否則我的生活會消失一條黑暗遊戲孔;)

原來的答覆:

說對期望的工作目錄/ X/Y/Z,和program.jar是在目錄/ A/b/C

cd /x/y/z 
java -jar /a/b/c/program.jar 
+0

但我相信程序會將其工作目錄從其所在的目錄中移開。 – 2012-04-26 19:32:29

+4

java只使用調用進程的當前工作目錄(即終端),所以如果你使用'cd',那麼它將使用該文件夾。如果你認爲你遇到了不同的事情,那麼我認爲你需要提供更多細節。 – laher 2012-04-26 19:38:42

+0

是的,這是Minecraft遊戲minecraft.jar文件。如果你有我的世界,你可以嘗試幫助我。我的一位朋友能夠在Windows上使用批處理文件更改工作目錄,以便Minecraft將世界保存在程序和批處理文件所在的拇指驅動器上。我正在嘗試在Linux上做同樣的事情。 – 2012-05-14 01:32:00