Можете ли вы установить текущий запущенный каталог из командной строки 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".

Другие вопросы по тегам