Šta je novo?

Java .jar program problem

Vegeta

Cenjen
Učlanjen(a)
15.10.2011
Poruke
974
Poena
180
Ovako, na poslu su mi dali neki stari source kod na kome treba da uradim sitne izmene. Ja sam te izmene odradio, i program sačuvao u .jar formatu (netbeans automacki stvori unutar projekta). Kada taj .jar program pokrenem unutar /home/meteo/NetBeansProjects/dist/Hodnotenie_3_0_8.jar (default save) sve radi kako treba, međutim ako se taj Hodnotenie_3_0_8.jar program(samo jar, bez dodatnih dokumentat) kopira na neko drugo mesto, izvan tog direktorijuma, ili pokrene na drugom PC ne radi kako treba. Izbacuje sledeću grešku:

Kod:
java -jar Hodnotenie_3_0_8.jar
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at Statistics.getMonth(Statistics.java:130)
	at Verification.getStatisticsOutput(Verification.java:7514)
	at Verification.<init>(Verification.java:1842)
	at Verification.main(Verification.java:2051)
Exception: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Uradio sam povezivanje sa mysql connectorom. Stara ne editovana verzija ima stvoren jar program koji radi kako treba. Ovako izgleda struktura direktorijuma u kome .jar program radi
Screenshot from 2019-06-17 08-54-20.png


Pitanje je, kako podesiti da konkretni program bez potrebe za kopiranjem dodatnih direktorijuma (mislim na taj lib i README).
 
Poslednja izmena:
Moraš da isporučiš i ceo "lib" podfolder, tu su sve biblioteke od kojih glavni JAR zavisi. Struktura foldera mora ostati ista.
Druga opcija je da pronađeš način da izbilduješ integralni JAR (takozvani "fat JAR"), što nije jednostavno u klasičnom Netbeans Java projektu (bilo bi da ste ga pravili kao Maven projekat što Netbeans takođe podržava).
 
Moraš da isporučiš i ceo "lib" podfolder, tu su sve biblioteke od kojih glavni JAR zavisi. Struktura foldera mora ostati ista.

Neka smernica, nemam baš puno iskustva sa java projektima ?
Samo da napomenem, kada uradim export/java/Runable Jar file unutar eclipse IDE-a izbaci dosta grešaka ali program radi kako treba. Evo kako izgleda jar file stvoren unutar eclipse(levo) a kako unutar netbeans(desno).
eclipsevsnetbeans.png

edit2: kada kopiram lib folder zajedno sa jar(pogledati sliku) onda aplikacija radi. Kako da ovo sve bude unutra jedne jar strukture ?
 
Poslednja izmena:
Verovatno Eclipse podrazumevano pravi fat JAR-ove, ali nisam dugo radio s njim. Kucaj "netbeans fat jar plugin" pa probaj neki od odgovora novijeg datuma.
 
Da problem je bio u tome.
Hmm after long time with out blogging. Finally decided to add some posts to my blog. So in this post I would like to describe how to build a fat jar using NetBeans. Of course you can simply do it using Eclipse. But in Netbeans you can't actually directly build a fat jar. The jar which is build using NetBeans is not adding the libraries you've used for the project. The libraries are added to a folder called "lib" whenever you run the jar the "lib" folder must be in the same directory.
Pratio sam ovaj postupak i stvoren je fat jar file. Hvala puno na odgovorima :)
 
Poslednja izmena:
Nazad
Vrh Dno