2012-04-30 4 views
0

Я создал простую графическую программу с Swing в Scala, а приложение «Запуск от Scala» в Eclipse хорошо работает. Я использовал SBT как инструмент сборки, и я создал некоторые файлы классов для логики приложения + одноэлементный объект в файле с тем же именем, что и объект, у которого есть метод main() для запуска приложения.Создайте исполняемый файл Jar из Scala Swing Project в Eclipse

Как я уже сказал, просто начиная с внутри затмения работает. Но генерировать JAR-файл не (экспорт -> ...). Есть ли простой способ сделать это?

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

http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/?wscr=1280x1024

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

EDIT: Я решил проблему наконец. Проблема заключалась в том, что Eclipse показывает библиотеки Scala на пути сборки, но не действительно экспортировать их. Может быть, ошибка, я не знаю. Наконец, я добавил scala-library.jar и scala-swing.jar прямо в путь сборки в качестве внешних банок, игнорируя тот факт, что затмение показывает их уже включенными -> все работает.

+0

Вы получаете сообщение об ошибке? Который? Если нет, что не так точно? Автономный означает что? Runnable с 'scala yourJar.jar' или' java yourJar.jar'? –

+0

Хорошо, у меня есть Java Starterclass точно так же, как в последнем комментарии опубликованной ссылки выше. Экспорт -> Runnable Jar works, он создает файл .jar. doubleclick: ничего не происходит. начать с java -jar: InvocationTargetException, кажется, что объект scala не найден. запуск команды .jar с помощью команды scala. Я дважды проверил свой путь сборки: Scala-Librarie (2.9.2) * is * в пути сборки. Есть идеи? Он должен запускаться, когда случайный пользователь выполняет двойную печать, ему просто нужно время выполнения java. – Hisako

+0

Вы можете принять свой собственный ответ. Это не плохой стиль, поскольку другие пользователи с подобной проблемой могут найти ваш вопрос и хотели бы знать, если есть принятый ответ. До тех пор, пока вы не задаете вопросы с учетом этого шаблона ответа, это абсолютно нормально - не только это, это желание поведения. –

ответ

0

Я нашел решение, см. EDIT в вопросе. Я скоро поиграю с возможными альтернативами, но материал, связанный с затмением, теперь работает для меня. Может быть, ребята из Scala IDE могли бы посмотреть на упаковку приложений Scala в Eclipse, все еще есть какие-то обручи, которые можно перепрыгнуть. :)

+0

Я не являюсь тяжелым пользователем Eclipses build-jar-facility, но, я думаю, он никогда не упаковывает чужие банки в вашу банку. Очень много банок разделяют между приложениями, и вы не хотите обновлять их 20 раз, и вы не хотите оставаться с устаревшими банками. –

+0

Я думаю, что это тема для плагинов Scala IDE для eclipse :) Серьезно, мне нужно упаковать scala lib в банку, чтобы заставить ее работать для других пользователей, я лично не вижу выбора (или не получаю что нибудь?). Возможно, создание оптимизированного установщика, который загружает новейшие библиотеки и т. Д. ... но в моем случае это, кажется, слишком велико. – Hisako

+0

Я так не думаю. Обычно вы создаете банку для того, что вы создали, а не для сторонних библиотек. Когда вы создаете банку для Java, вы не добавляете jre/lib/rt.jar в свою собственную банку, но ожидаете, что она будет на целевой машине. Вы также не добавляете commons.jar (apache), но ожидаете, что клиент сам организует его. –

0

Взгляните на новорожденные бонусы SBT: https://github.com/retronym/sbt-onejar. Это кажется простым и хорошим описанием.

+0

Выглядит довольно интересно, но, как я уже написал в другом комментарии, я * действительно * ищу решение, чтобы сделать это из eclipse. – Hisako

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