2013-05-04 2 views
3

Я переношу JAR-файл Java-проекта в файл .exe с помощью launch4j, который отлично работает на моих машинах dev и на нескольких других компьютерах. Тем не менее, один пользователь сообщил, что он не может запустить exe-файл на своем компьютере, как всплывающее сообщение говорит ему.exe из launch4j работает, но не на всех компьютерах

Could not find the main class. 

Интересно, что пользователь может запустить файл JAR непосредственно на том же компьютере, либо позвонив по телефону его через java -jar из командной строки или напрямую, дважды щелкнув файл JAR в проводнике Windows (или с помощью ярлыка). Этот пользователь установил последнюю версию JRE.

Я видел здесь другие темы, которые могут возникнуть из-за недопустимых файлов манифеста, например. если там отсутствует основной класс. Тем не менее, я думаю, что это не так, потому что он работает нормально, если JAR вызывается непосредственно, как сказано.

Так что я предполагаю, что проблема находится где-то с моей конфигурацией launch4j. Там я не указал пользовательский файл манифеста, только входной JAR-файл и выходной файл .exe.

Я думал, что моя версия launch4j будет в порядке, потому что .exe работает на нескольких машинах, используя разные версии Windows. Это первый раз, когда я сталкиваюсь с этой проблемой, но, как сказано только с файлом .exe.

Любые идеи?

+1

Есть ли какой-либо шаблон на машинах, на которых он не работает? Некоторые версии Windows, например 32 или 64 бит? – berry120

+0

@ berry120: У меня была такая же мысль, но трудно сказать. Файл exe отлично работает на серверных машинах Windows, это первый пользователь, который сообщает об ошибке htis. Так что нет, я еще не нашел ни одного шаблона. – Matthias

ответ

2

Мы только что обнаружили проблему с одной клиентской машиной. У этого была установлена ​​64-разрядная версия JRE, которая вызывала проблему. После замены его 32-разрядной версией JRE файл .exe можно снова запустить снова.

+0

Это одна из причин, почему запуск4j не может быть рекомендован. – Marco

+1

@Marco по моему опыту Launch4J exe может справиться с 64-битными JRE. Может быть, OP нуждается в перестройке своего exe с более современной версией L4J. –

+2

Я использую последнюю версию (версия, то есть не бета-версия) L4J. Есть ли лучшая альтернатива? – Matthias

0

Да, даже я столкнулся с этой проблемой. Я использовал jar2Exe вместо launch4j. Он отлично работает. Вам лучше использовать его.