Avatar billede nicklasb Nybegynder
25. september 2007 - 07:56 Der er 6 kommentarer og
1 løsning

Inkluder MySQL driver (i Java)

Jeg har udviklet et program der kører på en ekstern driver (til en database). Jeg har været nød til at kopiere driveren til C:\Programmer\Java\jre1.6.0_01\lib\ext (da den står i min CLASSPATH). Hvordan undgår jeg at skulle installere driveren på den måde og i stedet blot vedhæfte den til mit program?
Avatar billede mikkelbm Nybegynder
25. september 2007 - 08:07 #1
Det gør du ved at vedlægge den i en mappe f.eks. 'libs':

MitProgram.jar
libs\mysql.jar

Herefter fortæller du med din start-kommando at java skal kigge efter dependencies i libs-mappen.

Afhængig af hvordan du vil deploye dit program er der flere forskellige måder:

java -cp.;libs -jar MitProgram.jar (mener det er sådan)

eller hvis du har et manifest i din jar-fil, skal du sætte classpath i manifestet.
Avatar billede nicklasb Nybegynder
25. september 2007 - 08:51 #2
Så lad mig spørge på en anden måde ;) (jeg er ikke så meget inde i det pakning osv.)

Jeg har skrevet et program en en .java-fil, hvor jeg henter min mySQL driver, ved at skrive
    Class.forName("com.mysql.jdbc.Driver").newInstance();

Som jeg har gjort det nu, har jeg kopieret driveren til min jre-mappes lib-bibliotek og kompileret mit program med javaw pakke.Program

Når jeg har skulle starte mit program, har jeg i min komandopromt navigeret til min projekt-mappe og herfra skrevet java pakke.Program

Hvordan pakker jeg mit program bedst muligt, så det er let at starte fra en anden maskine (jeg har aldrig rigtig leget med .jar-filer, - men kunne forstille mig, at det er det jeg skal ?) Hvordan får jeg min .jar -fil til at kigge i min driver (.jar -fil) også?

Tak for hjælpen :)
Avatar billede mikkelbm Nybegynder
25. september 2007 - 09:05 #3
Ta' et kig her:

http://java.sun.com/docs/books/tutorial/deployment/jar/

Når/hvis du kører fast, så skriver du bare igen.

Mht. den måde du kører det på nu, så prøv:

java -cp.;sti_til_din_mysql_jar pakke.Program

cp: ClassPath
. (punktum) betyder at du sætter classpath til at pege på rod-mappen (der hvorfra du kører din kommenda)
; adskiller de forskellige stier du måtte have til eksterne libs
sti_til_din_mysql_jar = Stien til din mysql-jar kan både være relativ i forhold til programmappen, men det kan også være en fuldstændig sti: c:\blah\mysql\mysql.jar

Normalt vil man jo nok vælge en relativ sti, så man ikke låser sig på noget.
Avatar billede mikkelbm Nybegynder
25. september 2007 - 09:06 #4
kommenda = kommando :)
Avatar billede superanden Nybegynder
26. september 2007 - 17:26 #5
Hvis der er en der har lyst en dag må i gerne skrive en artikel om hvordan man lære at programmere MySQL sammen med java helt fra bunden. Synes der har været mange spørgsmål oppe om dette emne på det sidste. I sær med hvordan man får filerne inkluderet i classpath, så man tør næsten ikke springe ud i det :-)

(og nicklas , sorry for spam.)
Avatar billede nicklasb Nybegynder
13. juli 2008 - 12:05 #6
Brugte ANT til at få driveren med i min jar. Holder ikke at ligge driveren ved siden af og så gå ud fra at den bliver liggende der.
Smid et svar, hvis du vil have pointene alligevel..
Avatar billede mikkelbm Nybegynder
13. juli 2008 - 18:02 #7
.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester