Попытка запустить приложение Java из сценария оболочки в Ubuntu 10.04 - PullRequest
0 голосов
/ 12 марта 2012

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

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

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

Ответы [ 2 ]

0 голосов
/ 12 марта 2012

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

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

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

В вашем сценарии оболочки вам нужно добавить другие jar-файлы в classpath, например,

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 в самом начале вашего сценария

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

0 голосов
/ 12 марта 2012

Мне не очень понятно, что вы ищете.

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

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

...