2009-08-18 4 views
2

Я написал приложение Java GUI (используя NetBeans 6.7), требующее Java 1.6. Я успешно запускаю его на своем ПК с XP, а также в Mac OSX (10.5.7).Не удается выполнить приложение Java в Vista Business - «Не удается найти основной класс ... Программа выйдет»

Мой клиент работает под управлением Vista Business и не может запустить приложение, дважды щелкнув файл jar. Он может выполнить его из командной строки: «javaw -jar ...« Полученная ошибка: «Не удается найти основной класс ... Программа выйдет».

Я попросил клиента, чтобы сделать следующее:

  • установите последнюю версию JRE
  • запустить JarFix

Я подтвердил, что:

  • JRE является установленного в правильном месте
  • jar file association is correct
  • приложение работает (как я тестировал на XP и Mac OSX, и клиент может запустить его из командной строки)

Любые идеи о том, что еще я могу исследовать? Примечание. Netbeans создал основной файл jar, а также каталог lib с несколькими другими Jarfiles. Я распаковал jarfile и просмотрел файл манифеста (который выглядит хорошо). Правильный основной класс также находится в jarfile приложения.

Должен ли клиент быть осторожным в отношении того, где приложение выполняется в Vista?

Большое спасибо. Prembo

+0

После небольшого расследования выясняется, что клиент не выполнял инструкции по установке. Оказывается, они пытались запустить файл jar из zip-файла, содержащего приложение! Это научит меня! Спасибо за ваши прекрасные предложения. – Prembo

ответ

2

Как работает тот же JAR-файл в других операционных системах?

Правилен ли файл манифеста (META-INF/MANIFEST.MF) в файле JAR? Один улов, на который следует обратить внимание, заключается в том, что файл манифеста ДОЛЖЕН заканчиваться пустой строкой; если этого не произойдет, последняя строка в файле манифеста будет проигнорирована. Так, например, если последняя строка в вашем файле манифеста что-то вроде этого:

Main-Class: com.mypackage.MyProgram 

и не следует пустая строка, то Java будет игнорировать эту строку, и она не сможет найти основной класс программы.

Для получения точной информации о том, как упаковать приложение в JAR, см. Sun's Java Tutorial about deploying Java programs in JAR files; он также содержит предупреждение о файле манифеста, который должен заканчиваться пустой строкой.

Кроме того, проверьте правильность использования Java-версии. Вы используете ту же самую версию Java, что и в Windows XP? Попытайтесь:

java -version 

, чтобы узнать, какая версия Java используется.

+0

Да - точный файл jar работает в Mac OSX, XP и из командной строки в Vista Business. Манифест был создан Netbeans, и все в порядке. Я проверил, что последняя строка - это просто строка комментариев, поэтому это не проблема. Варианты Java разные, но я пробовал различные версии 1.6.x, и все в порядке на разных ОС (кроме, конечно, Vista Business) – Prembo

+0

Спасибо за предложения ... – Prembo

1

Я запускаю Vista Enterprise и имею очень небольшие различия между ним и другими версиями Windows (в отношении Java).

Вот некоторые случайные идеи, которые могут или не могут работать:

  • Вы пробовали: щелчок правой кнопкой мыши на Jar -> Открыть с помощью -> Java (TM) Platform SE Binary
  • Может быть разрешения связаны? (возможно, нет, поскольку он запускается через командную строку)
  • Вы пробовали его с UAC? (Приложения UAC для песочницы java, и они не могут писать в определенные места, например Program Files)
  • Вы уверены, что у них есть те же файлы, что и вы, в JAVA_HOME/lib/ext/
  • вы можете попробовать установить переменные среды:
    • JAVA_HOME = <your_java_home>
    • CLASSPATH =.
    • PATH = <your_java_home> \ Bin
+0

Спасибо за ваши предложения. Я буду исследовать. – Prembo

0

Иногда JDK должен быть установлен отдельно, наряду с чистой фасолью IDE. Если у вас установлен jdk, вы можете попробовать проверить путь к классам, путь в переменных окружения.

Смежные вопросы