Как запустить Java-программу из строки cmd с classpath и нативными библиотеками? - PullRequest
3 голосов
/ 20 июня 2011

Хорошо, я сдаюсь - у меня не так много XP, запускающего Java из строки cmd, и я занимался этим некоторое время, пробовал бесконечные комбинации, и я просто разочарован, так что мы идем.

Мне нужно запустить простое Java-приложение (с зависимостями от нескольких jar-файлов, которые затем зависят от некоторых нативных библиотек) из строки cmd - я нахожусь в папке bin, когда пытаюсь запустить следующее:

java -Djava.library.path="../lib" -cp ../jar;. MyMainClass

Неважно, порядок (я понимаю, счет имеет значение!), Это не работает, с разными ошибками.

Например, версия, которую я вставил выше, дает мне список параметров строки cmd, за которыми следует:

-bash: myMainClass: No such file or directory

но MyMainClass.class находится в папке bin, из которой я запускаю материал.

Если я попробую это вместо:

java -Djava.library.path="../lib" AlphaHHKernel_Tuning_Test -cp ../jar;.

Я получаю:

Exception in thread "main" java.lang.NoClassDefFoundError: MyMainClass
Caused by: java.lang.ClassNotFoundException: MyMainClass
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
-bash: .: filename argument required
.: usage: . filename [arguments]

Я хотел бы понять, как эти атрибуты должны использоваться (и заставить его работать в процессе).

1 Ответ

2 голосов
/ 20 июня 2011

в Unix указывает путь к классу с разделителем :, а не ;, как в Windows: -cp ../jar:.

Кроме того, вам нужно указать каждый jarfile, а не просто дать ему каталог, полный jar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...