Помогите запустить приложение Java на Linux - PullRequest
0 голосов
/ 26 ноября 2010

У меня есть такой скрипт bash start.sh:

export JAVA_HOME=/home/qds/bin/jdk1.6.0_22<br/> export QDS_HOME=/home/qds<br/> $JAVA_HOME/bin/java -classpath $QDS_HOME/lib/*:$QDS_HOME/lib/commons/* com.qds.Main $@

В каталоге / home / qds / lib У меня есть необходимые библиотеки и мой файл jar, который содержит:

com \ qds \ configком \ QDS \ сущностиком \ КТ \ спящий режимком \ QDS \ протоколыком \ QDS \ Utilком \ КТ \ Main.class

но когда я запускаю ./start.sh, у меня есть:

./start.sh Исключение в потоке "main" java.lang.NoClassDefFoundError: com / qds / Main(неправильное имя: Main) в java.lang.ClassLoader.defineClass1 (собственный метод)

Ответы [ 2 ]

1 голос
/ 26 ноября 2010

Java не поддерживает подстановочные знаки в опции -classpath.Попробуйте удалить * из $ QDS_HOME / lib / * и из $ QDS_HOME / lib / commons / *

Кстати, это относится и к окнам.

Classpath должен содержать 1. каталоги 2. явно написанные jar-файлы.

Если у вас много jar-файлов, вы можете создать скрипт, который составляет параметр командной строки.Например, в linux

-classpath `ls -1|tr '\n' :`

составляет путь к классу, разделенный двоеточием

1 голос
/ 26 ноября 2010

Вы должны указать, каким будет ваш основной класс, одним из нескольких способов

  1. укажите имя основного класса в качестве аргумента команды java (просто добавьте основной класс в конец команды java)
  2. Определите это в манифесте вашей основной банки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...