Как создать .exe из .jar - PullRequest
0 голосов
/ 19 октября 2019

Я хочу сделать .exe из .jar (да, я знаю, что это не отвечает цели, но мне нужно, чтобы это легко выполнялось).

У меня уже был создан файл .jar, но когдазапустив его, я столкнулся с несколькими проблемами:

  • launch4j дал мне UnsupportedClassVersionError (скомпилированный более поздней версией Java Runtime)
  • Попытался установить более новую JRE и JDK для перестройки.jar, но затем intellij не распознал команду "ant", потому что я нахожусь в Windows, которую я предполагал (поскольку она также не распознает такие вещи, как "ls").
  • Я попытался использовать команду сGit Bash, то же самое. Я пытался заставить apache ant работать для восстановления .jar, но все еще даже не работает "ant -version".
  • Восстановить .jar без ant, используя встроенную в intellij структуру проекта, артефакты и т. Д. Buildвещь. Получил восстановленный .jar, но первая ошибка сохраняется.
java.lang.UnsupportedClassVersionError: org/academiadecodigo/thunderstructs/Main has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main"

Я не уверен, что на самом деле делать на этом этапе, так как я не очень разбираюсь в этом. У меня есть build.xml в проекте intellij, и я смог сгенерировать .jar только с помощью команды ant на Mac. Если я правильно помню, macs работает на Java 7, если это что-то помогает, и у меня есть Java 8 на этом.

Ответы [ 2 ]

1 голос
/ 19 октября 2019

Это связано с несовпадением версий. Вы скомпилировали свой код, используя Java 11 (файл класса версии 55.0), и ваша текущая JRE - версия 8 (файл класса версии 52.0).

Попробуйте обновить JRE до версии 11 или понизить JDK до версии 8.

0 голосов
/ 19 октября 2019

Существует кроссплатформенная исполняемая оболочка Java, разработанная Grzegorz Kowal, которую можно найти по этому URL: http://launch4j.sourceforge.net/

Вот краткое руководство по использованию инструмента: https://medium.com/@sulabh4/how-to-make-a-executable-file-from-your-java-code-3f521938ae5c

...