Как создать исполняемый файл .jar файл с netbeans

Я хотел бы сделать, "дважды щелкают" по cli приложению, но все еще не добираются как. Я знаю, что должен propably так или иначе отредактировать декларацию, но это - все. Я погуглил отдел. но никакой успех. Спасибо за любые подсказки. Вот вывод от сборки, выполненной, и декларация:

compile:
Created dir: /home/nick/NetBeansProjects/SemestralWork/dist
Building jar: /home/nick/NetBeansProjects/SemestralWork/dist/SemestralWork.jar
Not copying the libraries.
To run this application from the command line without Ant, try:
java -jar "/home/nick/NetBeansProjects/SemestralWork/dist/SemestralWork.jar"
jar:
BUILD SUCCESSFUL (total time: 1 second)


java -jar /home/nick/NetBeansProjects/SemestralWork/dist/SemestralWork.jar

Exception in thread "main" java.lang.NoClassDefFoundError: semestralwork/Main
Caused by: java.lang.ClassNotFoundException: semestralwork.Main
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
Could not find the main class: semestralwork.Main. Program will exit.

MY MANIFEST created with build:

Manifest-Version: 1.0

Ant-Version: Apache Ant 1.7.1

Created-By: 14.0-b08 (Sun Microsystems Inc.)

Main-Class: semestralwork.Main

Class-Path: 

X-COMMENT: Main-Class will be added automatically by build
6
задан landscape 22 December 2009 в 13:33
поделиться

4 ответа

Откройте файл JAR с помощью инструмента ZIP (или попробуйте less ... , если у вас Linux, или jar tvf ... ). Убедитесь, что в нем есть каталог semestralwork , содержащий файл Main.class .

0
ответ дан 9 December 2019 в 22:35
поделиться

Возможно, проблема в пути поиска класса по умолчанию. Вы должны попробовать изменить каталог на место, где находится jar и запустить с java -jar Semestral.jar. Также возможно, что вы неправильно назвали основной класс. Пожалуйста, включите также структуру вашего пакета.

.
0
ответ дан 9 December 2019 в 22:35
поделиться

Эти две строки говорят вам все, что вам нужно знать:

Exception in thread "main" java.lang.NoClassDefFoundError: semestralwork/Main
Caused by: java.lang.ClassNotFoundException: semestralwork.Main

И еще одна подсказка пропускается на выходе манифеста:

Main-Class: semestralwork.Main

Это означает, что JAR-файл ищет пакет с именем semestralwork и класс с именем Main внутри него. На данный момент он не работает, потому что не может найти ни пакет semestralwork, ни класс Main.

Как вы указали в вашем вопросе, проблема действительно находится в файле манифеста. Вы можете редактировать это прямо в JAR-файле, если хотите, но лучше сделать это из Netbeans:

  • Нажмите на `Файл --> Свойства проекта (semestralwork)'
  • В открывшемся диалоге, на дереве слева выберите Run
  • Затем справа, под полем с пометкой Main class: , введите полное имя класса , который вы хотите выполнить при запуске из командной строки.

В вашем случае, как я вижу из вашего комментария к ответу @Aaron, если ваш основной класс находится в файле с именем encryption.java, и он находится в пакете по умолчанию (без пакета), просто введите encryption.

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

HTH

.
6
ответ дан 9 December 2019 в 22:35
поделиться

Проще сделать .exe из .jar без нетбобов. Вот мои предложения: 1. Используйте для этого специальное приложение (например: JSmooth, JEXECreator и т.д.). 2. Создайте программу на C++, которая запускает JVM (см. это tutorial)

.
1
ответ дан 9 December 2019 в 22:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: