2011-12-24 2 views
3

Я создаю exe с JSmooth. Он строит отлично, но затем говорит: «Не удалось найти основной класс: MyProgram. Программа выйдет». Файл .jar отлично работает. Это это файл манифест (с новой строкой в ​​конце):JSmooth EXE Compile

Mainifest-Version: 1.0 
Main-Class: MyProgram 

В JSmooth у меня есть:

  • Установите скелет оконной обертки
  • Исполняемых двоичным «MyProgram.exe»
  • Основное поле класса «MyProgram»
  • Затем я включил файл MyProgram.jar в раздел «Classpath» в JSmooth.

Есть ли что-то, что мне не хватает? Мой главный класс в Java является:

public class MyProgram extends JPanel implements ActionListener, 
PropertyChangeListener { 

Это, как я строить .jar:

jar cmf mainClass MyProgram.jar *.class 

Мой манифест файл «MainClass» и содержит то, что я первым поставил выше.

Спасибо.

+0

Если вы решили использовать [Java Web Start] (http://stackoverflow.com/tags/java-web-start/info) для развертывания настольного приложения на основе Swing? Не только JWS предлагает установку x-plat, но и больше шансов получить помощь (судя по 14 последователям JWS против 0 для JSmooth). –

ответ

0

В какой пакет входит MyProgram? Из того, что я вижу в манифесте, он выглядит как в пакете по умолчанию. Может быть, JSmooth не справляется с этим?

+0

Не быть нобом, но как мне это сделать? Что нужно изменить в моем манифесте? – carget

+0

Вам нужно будет добавить оператор пакета в исходный файл в качестве первой строки. например пакет foo; Затем вам нужно создать подпапку в вашем исходном каталоге под названием «foo» (она должна точно соответствовать имени пакета) и переместить туда исходный файл, сделать чистую сборку. Затем измените манифест, чтобы сказать foo.MyProgram. Если вы используете Netbeans (например), он сделает все это для вас простым рефакторингом. Он также будет создавать исполняемые файлы jar для вас, если вы используете основной проект приложения Java. – Bill