Можете ли вы установить текущую текущую директорию из командной строки java?

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

Ответы

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

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

В этой ситуации рабочий каталог будет установлен на "JarLearning", а не на "2ndTry".