2012-03-12 2 views
0

Моя программа java была написана на машине Windows, и я пытаюсь установить ее и запустить на машине Ubuntu 10.04. Я создал файл .tar.gz с myProgram.jar в нем, а также 5 файлов библиотеки .jar в библиотеке lib. Где я могу поместить эти файлы? Нужно ли его извлекать на машине Linux в папку usr/bin? Сценарий оболочки входит в tar.gz? Я прочитал, что если вы напишете сценарий оболочки на машине Windows, у вас могут возникнуть проблемы, как только вы переместите их на машину Linux, поэтому я пишу сценарий оболочки на машине Linux с помощью gedit. Я просто не уверен, что делать дальше. До сих пор в моем сценарии я,Пытаясь запустить приложение java из сценария оболочки на Ubuntu 10.04

#!/bin/bash 
java -jar myProgram.jar 

Я собираюсь попытаться извлечь файл tar.gz в USR/каталог бен и посмотреть, если он работает. Любые предложения или помощь были бы весьма полезны. Заранее спасибо, Ray

ответ

0

Ваш вопрос довольно «широкий» :). Надеюсь, вы найдете следующее полезное.

Не извлекайте файлы в/usr/bin. См. http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard где и где не помещать файлы в систему * nix.

  1. Извлечь банку, например./Опт/yourProgram/*.
  2. Сценарий оболочки также должен быть внутри. Убедитесь, что его исполняемый файл (i.e chmod 755 script.sh)
  3. В своем сценарии оболочки добавьте cd /opt/yourProgram, чтобы иметь соответствующий рабочий каталог для вашей программы перед вызовом java.
  4. Если вы хотите, чтобы эта программа была легко запущена, создайте символическую ссылку в /usr/bin или лучше в /usr/local/bin, указывая на ваш скрипт. Сделайте это как последний шаг после того, как все остальное работает.

В сценарии оболочки вы должны добавить другие банки в путь к классам, например.

java -cp lib/some.jar:lib/other.jar -jar myProgram.jar

или

java -cp lib/some.jar:lib/other.jar:myProgram.jar com.acme.ClassContainingMain

Рекомендуемая практика: Добавить set -e в самом начале вашего скрипта

Как уже упоминалось это считается вредным для редактирования сценария оболочки с помощью окна редактор. Причина в том, что редактор окон будет кодировать разрывы строк (т. Е. Вы нажимаете клавишу возврата) по-разному. Это сделает bash puke :)

+0

Спасибо Мартин. Это определенно привело меня в правильное направление. Я создам новый вопрос, если снова застрянет. – Ray

0

Im не слишком ясно, что вы ищете.

Сценарий, который вы написали, должен работать абсолютно нормально, если вы разместили свой скрипт и myprogram.jar на том же уровне.

А также я не уверен, как ваш myprogram.jar ссылается на зависимые библиотеки. Так что не могу комментировать их. Лучше всего разместить ваш скрипт и все банки вместе и попробовать запустить скрипт.

+0

Я сохранил свой сценарий как myProgram.sh на рабочем столе, где у меня есть myProgram.jar и lib, содержащие другие .jar-файлы. Когда я пытаюсь запустить файл .sh, дважды щелкнув его, он откроется в gedit. Если я пытаюсь запустить файл .jar с терминала с помощью «java -jar myProgram.jar», я получаю «неспособный получить доступ к jarfile myProgram.jar». – Ray

+0

Является ли исполняемый файл * .sh ?. – MartinK

+0

проверить, должен ли файл .sh требовать разрешения. затем введите ./myProgram.sh – prasann

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