2012-04-26 36 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