Avatar billede boomshanka Nybegynder
15. februar 2004 - 23:02 Der er 6 kommentarer og
1 løsning

Hvordan importerer man en klasse fra et andet libary?

Jeg har læst et sted, at man skal opdatere sin CLASSPATH variabel, men jeg kan ikke se hvad den skulle opdateres til? Hvad gør man egentlig hvis man ikke bruger JBuilder eller andre tools og vil bruge en klasse i et andet bibliotek?

For lige at gøre det helt klart: Jeg ved man skal importere den nye package øverst i sin java-fil - problemet er at få compileren til at indse, at den skal importere en klasse udenfor det medfølgende libary.
Avatar billede arne_v Ekspert
15. februar 2004 - 23:12 #1
Command line:

javac -classpath .;xyz.jar Abc.java
java -classpath .;xyz.jar Abc

GUI:

project properties et eller andet sted

Jeg fraråder:
- putte jar fil i CLASSPATH environment variabel
- putte jar fil i jre/lib/ext directory
Avatar billede arne_v Ekspert
15. februar 2004 - 23:13 #2
Hvis ens egen kode er i en jar fil kan man også putte et Class-Path direktiv
i manifestet for sin jar fil.
Avatar billede boomshanka Nybegynder
15. februar 2004 - 23:26 #3
Så bliver man jo nødt til at spørge: Hvad er der skidt ved at lægge den i jre/lib/ext?

I mit tilfælde er det Polygon2D-klassen som jeg gerne vil bruge, men det er ikke en klasse jeg selv har skrevet
Avatar billede arne_v Ekspert
16. februar 2004 - 07:14 #4
Jeg ser ihvertfald 2 problemer ved jre/lib/ext:
1)  den kommer i classpath for alle apps også dem der ikke skal bruge den
    og som måske får nogle konflikter (hvis de skal køre med en anden version
    af samme software)
2)  den dag du opdaterer Java SDK så mangler du pludselig en masse ting
    som du skal have flyttet over
Avatar billede boomshanka Nybegynder
16. februar 2004 - 13:48 #5
Hmm...jeg kan ikke få det til at virke ("package grace.util.java2D does nok exist"), men jeg har heller aldrig før skulle bruge klasser udenfor java-biblioteket. For mit vedkommende er det grace libary med 2 inner classes (Polygon2D og Polyline2D), så jeg kompilerer følgende Foo-klasse:

import grace.util.java2d.Polygon2D;

public class Foo {

    public Foo() {
        Polygon2D.Double p = new Polygon2D.Double();
    }
}

med denne sætning:

javac -classpath .;grace.jar Foo.java

Skal man ikke angive hvor grace.jar ligger - det er måske fejlen?
Avatar billede arne_v Ekspert
16. februar 2004 - 13:56 #6
Der skal fuld sti på til jar filen hvis den ikke ligger i current dir.

javac -classpath .;C:\et\eller\andet\sted\grace.jar Foo.java
Avatar billede boomshanka Nybegynder
16. februar 2004 - 13:58 #7
ah...se nu virker det jo. Tak for et fyldtigt svar!
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