Невозможно запустить приложение Java в Vista Business - "Не удается найти основной класс... Программа завершится"
Я написал приложение с графическим интерфейсом Java (использующее Netbeans 6.7), требующее Java 1.6. Я успешно запустил его на своем ПК с XP, а также на моем Mac OSX (10.5.7).
Мой клиент работает под управлением Vista Business и не может запустить приложение, дважды щелкнув файл jar. Он может выполнить его из командной строки: "javaw -jar..." Полученная ошибка: "Не удается найти основной класс... Программа завершит работу".
Я попросил клиента сделать следующее:
- установить последнюю версию JRE
- запустить JarFix
Я подтвердил, что:
- JRE установлен в правильном месте
- правильное сопоставление файлов jar
- приложение работает (как я тестировал его на XP и Mac OSX, и клиент может запустить его из командной строки)
Любые идеи о том, что еще я могу исследовать? Обратите внимание, 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
- JAVA_HOME =
Иногда JDK необходимо устанавливать отдельно вместе с IDE net beans. Если у вас установлен jdk, вы можете попробовать проверить путь к классам, путь в переменных среды.