Можете ли вы установить текущий запущенный каталог из командной строки Java? - PullRequest
16 голосов
/ 14 декабря 2010

Я запускаю приложение Java из командной строки. Могу ли я указать аргумент командной строки, чтобы установить для текущего запущенного каталога что-то отличное от того, где приложение будет работать?

Ответы [ 4 ]

39 голосов
/ 02 марта 2012

Существует аргумент JVM -Duser.dir, который можно использовать для установки рабочего каталога для JVM.

4 голосов
/ 15 декабря 2010

Если это все возможно, я бы предпочел использовать скрипт для запуска java-приложения и установить каталог в скрипте:

#!/bin/sh
cd <your dir>
java <some arguments>

JNI-решение может влиять на все виды относительных путей в вашем приложении;например, путь к классу, который вы указали.

0 голосов
/ 31 июля 2017

Я нашел этот пост, и он помог мне решить мою проблему.Хотя я хотел поделиться с IntelliJ чем-то конкретным, что может кого-то запутать.

Ниже я разместил картинку, где используется флаг -Duser.dir, а также заполнено текстовое поле Working Directory.

В этом случае для рабочего каталога будет задано значение «JarLearning», а не «2ndTry».

0 голосов
/ 14 декабря 2010

Если вы хотите изменить текущий каталог, вам придется использовать JNI и вызывать нативный API из вашего кода Java. Например, для Windows вы должны использовать SetCurrentDirectory

...