09. april 2005 - 22:44Der er
32 kommentarer og 2 løsninger
Køre javaapplikation
Jeg har lavet et GUI-javaprogram. Jeg bruger i programmet nogle pakker der ikke er en del af af standard API'en. Jeg vil gerne have at programmet kan køres på alle computere der har java installeret, uden de behøver downloade de ekstra pakker jeg bruger i programmet.
Jeg vil også meget gerne have, at programmet bliver kørt lige så snart man dobbeltklikker på .class-filen.
1) pak alle dine .class filer i en enkelt .jar fil 2) put et manifest i den .jar fil med et Main-Class direktiv som peger på din main class og et Class-Path direktiv som peger på de .jar filer du skal bruge 3) distribuer din .jar fil og de eksterne .jar filer sammen
så kan folk dobbelt klikke på din .jar fil og det hele kører
Hmm, det er vist fint nok det med jar-filerne, det behøver ikke være .exe.
Jeg kunne dog godt tænke mig lidt hjælp til hvordan de 3 skridt arne_v opremser rent praktisk foretages - for det er mere eller mindre russisk for mig :)
For det første, hvordan får jeg overhovedet pakket mine filer som en .jar-fil?
arne_v >> Okay, nu skulle jeg være i stand til at pakke mine filer som en .jar-fil og lave en Main-Class der peger på min main class.
Når du skriver "eksterne jarfiler", mener du så den ekstra-pakke jeg har brugt i mit program? Og den Class-Path du taler om, skal den bare angives på samme måde som jeg angiver min Main-Class?
Nej, desværre. Det var en fejl der sneg sig ind da jeg kopierede teksten herind. Det var ikke det jeg skrev i virkeligheden, så det er ikke der fejlen er :(
Skal lige siges at jeg godt kan pakke filerne hvis jeg undlader alt det med Manifest.txt-filen. Men så kan jeg jo ikke få angivet min Main-Class og Class-Path. Eller der er måske en anden måde?
Der er faktisk en vigtig detalje mht jarfiler. Jeg ved ikke om det er et problem når man kører fra kommandoprompt med kommandoen -jar, men jeg ved det er et problem, hvis man vil kunne dobbeltklikke på filen.
Jeg har fået det pakket nu, og programmet kan køres når man dobbeltklikker på jar-filen. Men der er tilsyneladende noget galt med Class-Path'en.
Mit program benytter comm-api som bl.a. kan bruges til seriel kommunikation. En af mine metoder sørger for at navnene på alle computerens serielporte bliver skrevet på skærmen. Det virkede fint da jeg udviklede programmet i JCreator, men nu finder den pludselig ingen porte. Det er ligesom om comm-api'en ikke virker. Jeg har ellers lavet filen comm.jar i samme mappe som min egen jar-fil. Og programmet "brokker" sig da også hvis jeg fjerner filen derfra, så den kan altså godt se at den er der.
Er der mere jeg skal gøre for at kunne benytte comm-api'en i mit program? Skal jeg fx angive at comm er del af javax-pakken? I min kode bruger jeg jo kommandoen "import javax.comm.*" for at importere comm-api'en.
DEr hører vist DLL'er med. Jeg skulle i hvert fald kopiere filen "win32com.dll" ind i en mappe da je installere comm-api'en. Desuden skulle jeg kopiere filen javax.comm ind i en mappe.
Skal disse filer også ligge i samme mappe som min jar-fil? Og skal de også tilføjes til Class-Path'en?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.