Мне нужно создать пакетный файл, который запускает java jar при запуске Windows. Для этого мне нужно знать имя фляги, которую я хочу автозапускать. Я предполагаю, что пользователь может изменить имя банки, поэтому перед созданием летучей мыши я хочу проверить, изменилось ли название моей банки.Как узнать имя запущенного jar
Я могу получить абсолютное положение фляги с этим кодом, но как я могу получить его имя?
File f = new File(System.getProperty("java.class.path"));
File dir = f.getAbsoluteFile().getParentFile();
String path = dir.toString();
спасибо.
Это не имеет особого смысла. Если пользователь меняет имя флага, нет необходимости «находить» банку в пакетном файле. Просто укажите на то место, которое вы уже знаете. Это то же самое, что и искать эту банку для случая, когда пользователь переводит ее в другую папку. –
каждый раз, когда банка запускается с опцией «start at windows startup», как отмечено, она будет регенерировать файл bat с текущей позицией и именем. –
Если вы проверите документы: http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html , вы обнаружите, что системное свойство java.class.path может содержать не только одно каталог, который вы хотите. Путь к классу может содержать много записей, и тогда вы оставите их сортировку. Ответ Евгения Дофофеева, запрашивающий класс для его местоположения, кажется мне более эффективным методом поиска местоположения вашего файла jar. – OYRM