2013-11-08 2 views
1

У меня возникли проблемы с добавлением нескольких команд в командной строке.Добавление нескольких зависимых банок с использованием Javafxpackager

javafxpackager -createjar -outfile outjar -srcdir /dest/to/src -classPath 
libs/library1.jar:libs/library2.jar -appClass pathto.MainClass -v 

Я попытался с пробелами и несколько -classPath флагов и, очевидно, я попробовал колон, а также. Я работаю в Ubuntu, и программа отлично работает в Eclipse, но когда я его упаковываю, она работает, пока я не попытаюсь сделать что-то, что требует внешней библиотеки. Если я использую только один, я могу отлично выполнять эту функцию, но для полноты работы вам нужны кратные.

Если кто-нибудь может просветить свет, я бы очень признателен.

+0

вы пробовали создать банку с помощью функции экспорта в Eclipse? – Choc13

+0

Кроме того, что вы подразумеваете под «работает, пока я не попытаюсь сделать что-то, что требует, и внешнюю библиотеку»? Вы имеете в виду, что 'javafxpackager' не будет создавать банку, если вы укажете сторонние библиотеки, или вы имеете в виду, что она не будет запущена? Что представляет собой ошибочное выходное сообщение? – Choc13

+0

Я могу создать банку и запустить ее с помощью «java -jar outjar.jar», и графический интерфейс появляется и выглядит нормально. Затем, когда я пытаюсь что-то сделать, ссылки на любые внешние барабаны выходят из строя. Экспорт jar из eclipse создает очень странный поток GTK и что-то о недостающей ссылке. – user2832286

ответ

0

Вместо:

-classPath libs/library1.jar:libs/library2.jar 

использование:

-classpath "libs/library1.jar;libs/library2.jar" 

Независимо от того, что разбирает JavaFX-ClassPath, который создается в манифесте упаковщиком не любит вас от : отделить библиотеки , Когда вы используете ; вместо аргумента -classpath, сгенерированный JavaFX-ClassPath будет использовать пространство для разделения библиотек, и тогда среда выполнения сможет использовать обе библиотеки.

Вот пример манифеста, который я сгенерировал с использованием JavaFX-пакета в OS X (который работал для меня).

$ jar xf HelloWorld.jar 
$ cat META-INF/MANIFEST.MF 
Manifest-Version: 1.0 
JavaFX-Application-Class: HelloWorld 
JavaFX-Class-Path: lib/phrases.jar lib/friend.jar 
JavaFX-Version: 2.2 
Created-By: JavaFX Packager 
Main-Class: com/javafx/main/Main 

Jar, содержащий манифест был сгенерирован с помощью команды на OS X 10.8 Java 1.8.0-еа-B113:

/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/bin/javafxpackager -createjar -classpath "lib/phrases.jar;lib/friend.jar" -srcdir . -outfile HelloWorld -appclass HelloWorld 
+0

Это именно то, что мне нужно. Я видел точки с запятой, но никогда не приходил, чтобы обернуть ее в кавычки. Большое спасибо! – user2832286

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