/ / Chyba budovania jar súbor s Eclipse [duplicate] - java, zatmenie, maven, jar, noclassdeffounderror

Chyba pri vytváraní jarového súboru s Eclipse [duplicate] - java, eclipse, maven, jar, noclassdeffounderror

Takže som vytvoril projekt na zatmenie a chcem s ním vytvoriť súbor JAR. Priečinok projektu obsahuje nasledujúce priečinky:

  • src (obsahuje dva balíky)
  • Knižnice systému JRE
  • Referenčné knižnice ("jasypt-1.9.2.jar" a "json_simple-1.1.jar")
  • libs (znova: "jasypt-1.9.2.jar" a "json_simple-1.1.jar")
  • zdroje (obsahujúce obrázky a súbory)

Ak idem na: kliknite na názov projektu -> Vlastnosti -> Java Build Path -> Libraries

Vidím, že obe knižnice sa správne pridali do cesty Vytvoriť.

Potom prejdem na názov Projektu -> export-> súbor JAR a tu všetko exportujem (len aby som sa uistil ..!). Potom som dal MainClass ako vstupný bod a potom je súbor JAR vytvorený bez problémov.

Pri extrakcii súboru JAR (register.jar) vidím, že obsahuje všetko, čo potrebuje: [balík1, balík2, META-INF, libs, zdroje, .classpath, .project]

Tiež .classpath je správna (aspoň, zdá sa mi .. nie 100% istý!):

   <?xml version="1.0" encoding="utf-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry exported="true" kind="lib" path="libs/jasypt-1.9.2.jar"/>
<classpathentry exported="true" kind="lib" path="libs/json_simple-1.1.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

Ale potom, keď idem spustiť súbor registry.jar z príkazového riadku (Windows a Ubuntu), napríklad takto:

java -jar registry.jar

dostávam:

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/parser/ParseException
at ...
at ...
Caused by: java.lang.ClassNotFoundException: org.json.simple.parser.ParseException
at java.net.URLClassLoader$1.run<Unknown Source>
at ...
at ...
... lots more

Program zostavuje a funguje perfektne vo vnútri zatmenia. Len nemôžem zistiť, čo je problém ...

odpovede:

0 pre odpoveď č. 1

Na .classpath súbor nemá žiadny význam pre Java.It používa len Eclipse.Java neuznáva, že knižnice sú pod lib položka v súbore Jar.

Ste "d musia obsahovať cestu knižnice pomocou príkazu:

java -jar registry.jar -cp lib

kde v tomto prípade lib býva priečinok vedľa vyvážaných Jar.

Ak ste "re využitím Maven, môžete zhromaždenia plugin generovať spustiteľný súbor.Pozrite si Ako môžete vytvoriť spustiteľný JAR so závislosťami pomocou Maven?.