Ответ 1
Я не вижу такой опции в документации по командной строке Java.
Я запускаю приложение Java из командной строки. Могу ли я указать аргумент командной строки для установки текущей текущей директории на что-то другое, кроме того, где приложение действительно будет запущено?
Я не вижу такой опции в документации по командной строке Java.
Существует аргумент JVM -Duser.dir
, который может использоваться для установки рабочего каталога для JVM.
Если это возможно, я предпочел бы использовать script для запуска приложения Java и установить каталог в script:
#!/bin/sh
cd <your dir>
java <some arguments>
JNI-решение может влиять на все виды относительных путей в вашем приложении; например, путь класса, который вы вставляете.
Если вы хотите изменить текущий каталог, вам придется использовать JNI и вызывать собственный API из вашего Java-кода. Например, для Windows вы должны использовать SetCurrentDirectory
Я нашел это сообщение SO, и это помогло мне решить мою проблему. Хотя я хотел поделиться чем-то конкретным о IntelliJ, который мог бы сбить кого-то другого.
Я разместил снимок ниже, где используется флаг -Duser.dir, а также заполнено текстовое поле рабочего каталога.
В этой ситуации рабочий каталог будет установлен на "JarLearning", а не на "2ndTry".