Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您可以从java命令行设置当前正在运行的目录吗?_Java_Command Line_Working Directory - Fatal编程技术网

您可以从java命令行设置当前正在运行的目录吗?

您可以从java命令行设置当前正在运行的目录吗?,java,command-line,working-directory,Java,Command Line,Working Directory,我正在从命令行运行一个Java应用程序。我是否可以指定一个命令行参数,将当前运行的目录设置为应用程序实际运行的位置以外的其他位置?如果要更改当前目录,必须使用JNI并从Java代码中调用本机API。例如,对于Windows,如果可能,您将使用,我宁愿使用脚本来运行java应用程序并在脚本中设置目录: #!/bin/sh cd <your dir> java <some arguments> #/垃圾箱/垃圾箱 光盘 JAVA JNI解决方案可能会影响应用程序中的各种相

我正在从命令行运行一个Java应用程序。我是否可以指定一个命令行参数,将当前运行的目录设置为应用程序实际运行的位置以外的其他位置?

如果要更改当前目录,必须使用JNI并从Java代码中调用本机API。例如,对于Windows,如果可能,您将使用

,我宁愿使用脚本来运行java应用程序并在脚本中设置目录:

#!/bin/sh
cd <your dir>
java <some arguments>
#/垃圾箱/垃圾箱
光盘
JAVA

JNI解决方案可能会影响应用程序中的各种相对路径;例如,您输入的类路径。

有一个JVM参数
-Duser.dir
,可用于设置JVM的工作目录。

我发现了这篇文章,它帮助我解决了问题。虽然我想分享一些关于IntelliJ的特别信息,这可能会绊倒其他人

我在下面发布了一张图片,其中使用了-Duser.dir标志,并填写了工作目录文本字段


在这种情况下,工作目录将设置为“JarLearning”而不是“2ndTry”

不确定这是重复的,但可能会有帮助是的,可能会有帮助。新文件(父文件、路径)可能有效。我得试试。我发布这个问题的原因是我试图在我的应用程序加载的dll上使用探查器。由于我必须从本质上分析java.exe,因此当前工作目录将设置为我的jdk文件夹,并在我的应用程序中抛出我的相对路径。您的分析程序应该具有设置起始目录的选项。或者可以编写一个BAT文件并告诉profiler运行它?确实如此,但无论出于何种原因,当我使用JNI时,应用程序将不会运行,因此这可能是一个可行的解决方案。当然,这将使您的代码完全不可移植。