Получить имя программы Java

Я долго искал ответ на этот вопрос, и я не могу найти ответ. Я могу получить путь к программе, но я не могу получить имя! В принципе, я создаю приложение, которое может быть либо .exe, либо .jar(это сложно), и мне нужно знать, что! Так кто-нибудь знает, как я могу получить имя/расширение файла программы (на Java)?

Спасибо в Advance

Andy

Ответ 1

Сделайте "имя программы" свойство, которое передается вашей программе с помощью командной строки "-D", например

java -Dprogram.name=myApp.jar -jar myApp.jar

Прочитайте его в своем коде так:

if ("myApp.jar".equals(System.getProperty("program.name"))) {
   // perform appropriate actions...
}

Ответ 2

Фактическая программа, запускающая JAR файл, будет java.exe.

Я предлагаю вам подойти к проблеме с совершенно другого ракурса и установить оболочку exe для системного свойства, которое запросит программа. Или вы можете получить его, а манифест JAR укажет разные основные классы.