Вопрос по java – Использование подстановочных знаков в java classpath [duplicate]

8

This question already has an answer here:

Я запускаю сценарий оболочки, который должен выполнитьmain метод:

java -classpath /path/to/app/conf/lib/nameJar* com.example.ClassTest

В этом пункте я получаю это исключение:

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)

Это потому, что пружинные банки находятся в другой папке. Итак, я изменил сценарий:

java -classpath /path/to/app/conf/lib/nameJar*:/path/to/app/lib/spring* com.example.ClassTest

Но с этим сценарием com.example.ClassTest не может быть найден. Есть идеи по этому вопросу?

заранее спасибо

Ваш Ответ

2   ответа
12

:

Understanding class path wildcards

Class path entries can contain the basename wildcard character *, which is considered equivalent to specifying a list of all the files in the directory with the extension .jar or .JAR. For example, the class path entry foo/* specifies all JAR files in the directory named foo. A classpath entry consisting simply of * expands to a list of all the jar files in the current directory.

java -classpath /path/to/app/conf/lib/*:/path/to/app/lib/*

does notnameJar*, *.jar, spring*

0

java -Djava.ext.dirs=c:/libs com.example.ClassTest
Error: User Rate Limit Exceededjava.ext.dirsError: User Rate Limit Exceeded

Похожие вопросы