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