2015-08-07 33 views
5

Apache'yi uygulamauma eklemek istiyorum ancak sorun yaşıyorum.java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException

CommandLineParser parser = new PosixParser(); 
Options options = new Options(); 
options.addOption("a", "abc", true, "First parameter"); 

try { 
    CommandLine commandLine = parser.parse(options, args); 
    System.out.println(commandLine.getOptionValue("a")); 
} catch (ParseException e1) { 
    e1.printStackTrace(); 
} 

Ben de pom.xml bu katma: Burada

Error: A JNI error has occurred, please check your installation and try again 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048) 
    at java.lang.Class.getMethod0(Class.java:3018) 
    at java.lang.Class.getMethod(Class.java:1784) 
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 7 more 

benim kodudur:

<dependency> 
    <groupId>commons-cli</groupId> 
    <artifactId>commons-cli</artifactId> 
    <version>1.2</version> 
</dependency> 

Ama öyle değil bunu çalıştırmayı denediğinizde Bu hatalar göstermek help:/Ayrıca manuel olarak commons-cli-1.3.1.jar ve sonra commons-cli-1.2.jar dosyasını ekledim ama her ikisi de yardımcı olmadı.

(

) "Java -jar filename.jar" olarak çalıştırıyorum. Kullandığınız sınıf yolu tüm kavanozlarda

+0

Bu jar, eklemeye çalıştığınızda sınıf yoluna ekleniyor mu? –

+0

Eclipse (BuildPath -> ConfigureBuildPath -> AddJARs) ekledim. – Marek

cevap

3

deneyin listeleme:

java -classpath lib/*.jar:other/location/lib/*jar:. my.package.Program 

Sen kod çalıştırmak için kullanmak kütüphaneler java söylemek gerekir.

0

Maven kullanıyorsanız, AppAssembler eklentisini kullanabilirsiniz. Bu yürütmek için

  1. bağımlı kavanoz
  2. Oluşturduğunuz kavanoz ve
  3. pencere/linux komut dosyalarını içeren bir dizin yapısı içinde kavanoz paketler olacak o

    appassembler-maven-plugin

2

Birkaç dakika değişikliği ile bu kodu uygulayabiliyorum: -

Benim pom.xml olarak
CommandLineParser parser = new PosixParser(); 
    Options options = new Options(); 
    options.addOption("a", true, "First parameter"); 
    args=new String[]{"-a abc"}; 

    try { 
     CommandLine commandLine = parser.parse(options, args);  
     System.out.println(commandLine.getOptionValue("a")); 
    } catch (ParseException e1) { 
     e1.printStackTrace(); 
    } 


Output :- abc 

: -

<dependency> 
    <groupId>commons-cli</groupId> 
    <artifactId>commons-cli</artifactId> 
    <version>1.2</version> 
    </dependency> 

commons-cli-1.2.jar kodunuzu görülemez.

İlgili konular