Невозможно запустить приложение Java в Vista Business - "Не удается найти основной класс... Программа завершится"

Я написал приложение с графическим интерфейсом Java (использующее Netbeans 6.7), требующее Java 1.6. Я успешно запустил его на своем ПК с XP, а также на моем Mac OSX (10.5.7).

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

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

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

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

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

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

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

3 ответа

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

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

Main-Class: com.mypackage.MyProgram

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

Смотрите Sun Java Tutorial о развертывании программ Java в файлах JAR для точных деталей о том, как упаковать ваше приложение в JAR; он также содержит предупреждение о том, что файл манифеста должен заканчиваться пустой строкой.

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

java -version

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

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

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

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

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

Другие вопросы по тегам