Создать папку в jar-файле dir - PullRequest
1 голос
/ 24 февраля 2012

Я ищу решение для создания новой папки в папке, где находится файл .jar.

Итак, если у меня есть файл test.jer в C:\test\temp, я бы хотел создать новую папку (newFolder): C:\test\temp\newFolder.

Кто-нибудь знает, как это сделать. Я пытался использовать

System.getProperty("user.dir").

Но это дает мне правильное значение только в том случае, если я дважды щелкну файл фляги. Мне нужно, чтобы он был запущен из планировщика, а затем изменилось местоположение.

1 Ответ

0 голосов
/ 24 февраля 2012

Как правило, вы не можете легко определить, где находится ваш JAR-файл во время выполнения. Среда выполнения вашей виртуальной машины может сообщить вам каталог пользователя (как вы сказали), но это каталог, из которого была запущена виртуальная машина. Так что, если вы дважды щелкнете по JAR, это каталог, в котором находится JAR. Но если вы вызываете Java в командной строке, например

c: \ some \ directory> java -cp c: \ temp \ test.jar main.Class

тогда «user.dir» будет содержать «c: \ some \ directory». Это отсутствие информации является преднамеренным, поскольку оно позволяет виртуальной машине прозрачно загружать классы из разных мест.

Ваш лучший выбор, чтобы сделать то, что вы хотите, - передать выбранный каталог в качестве аргумента командной строки. И в худшем случае вы можете использовать «user.dir» по умолчанию. Но лучшее решение на самом деле зависит от того, почему вы хотите разместить каталог, в котором находится JAR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...