Creare un jar

kr1pn0$

Utente Silver
14 Ottobre 2008
69
5
0
70
Ciao ragazzi,
ho deciso di scrivere una mini guida su come creare un file *.jar da un file.class
per adesso non so se funziona su linux
Ecco le principali differenze:
  • Non serve Avviarlo da console tramite
    Codice:
    java programma.class
    (anche se possibile
  • Utile per distribuirlo...
  • Leggermente più piccolo[vedi esempio]
ecco la procedura:
Spostatevi nella cartella C:\Programmi\Java\jdk1.6.0_11\bin
Nel mio caso e' jdk1.6.0_11 riferente alla versione installata...
quindi fate:
Codice:
cmd
Codice:
cd C:\Programmi\Java\jdk1.6.0_11\bin
adesso dovrebbe apparirvi una cosa tipo questa:
Codice:
C:\Programmi\Java\jdk1.6.0_11\bin>
copiate il file class dentro sempre a C:\Programmi\Java\jdk1.6.0_11\bin...
ok
create un file Manifest.txt ( o come altro vogliate chiamarlo ) e inseriteci
Codice:
Main-Class: classe
Miracomando al capolinea...
bene su main-class: ci dovra essere il nome del file class (senza .class)
adesso inserite:
Codice:
jar cmf Manifest.txt Nome_che_volete_dargli.jar *.class.
premete invio,
se avete fatto in maniera corretta dovrebbe spuntarvi un file .jar...
per eseguirlo da console,
usare
Codice:
java -jar nome
Ciao e buona serata :D

EDIT by MrDarkest: Il tag kripnos, l'ho messo io
 
Ottima guida.

Io metterei questo topic e quello in cui tratti di cos'è il java e lo metterei in evidenza cosi risalta agli utenti meno esperti che vogliono avvicinarsi alla programmazione java.
 
Ho avuto non pochi problemi co ste robe jar ragazzi... vi posto tutto il lavoro e quello che ne riesce:
Codice:
vikkio@acertm:~/Desktop$ cd Esempio_Jar/
vikkio@acertm:~/Desktop/Esempio_Jar$ ls
Input.class  Persona.class  Studente.class  Test_Persona.class
vikkio@acertm:~/Desktop/Esempio_Jar$ echo "Main-Class: Test_Persona" > manifestomio
vikkio@acertm:~/Desktop/Esempio_Jar$ jar cmf manifestomio Accaso.jar *.class
vikkio@acertm:~/Desktop/Esempio_Jar$ java -jar Accaso.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: Test_Persona (wrong name: Test_pack/Test_Persona)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:637)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: Test_Persona. Program will exit.
vikkio@acertm:~/Desktop/Esempio_Jar$

perchè???? :(:rulezmg:


EDIT:

tutto ok gente ho risolto grazie lo stesso.... avevo dimenticato che i tre sorci erano in un package... e l'instestazione del manifest file doveva essere nomepackage.ClasseMain :D...