/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
java <klassefil> vil ikke
Fra : martin@jarl.dk


Dato : 14-05-01 06:23

Hej NG!

Jeg har følgende problem: Jeg kan ikke køre et java-program ved at
skrive

java <klassefil>

hvor den melder om fejlen "Exception in thread "main"
java.lang.NoClassDefFoundError: <klassefil>" men må skrive

java -cp /home/koder <klassefil>.

Med andre ord er jeg nød til at inkludere det katalog i CLASSPATH hvori
min klassefil er placeret. Det er selvfølgelig irreterende. Det skal
siges/skrives at min CLASSPATH er sat rigtigt op.

Derfor: hvordan sætter jeg min CLASSPATH til automatisk at pege på det
katalog som jeg er i?

Mvh
Martin


 
 
Peter Makholm (14-05-2001)
Kommentar
Fra : Peter Makholm


Dato : 14-05-01 07:09

martin@jarl.dk writes:

> Derfor: hvordan sætter jeg min CLASSPATH til automatisk at pege på det
> katalog som jeg er i?

% export CLASSPATH=.:$CLASSPATH

Burde kunne gøre det.

--
hash-bang-slash-bin-slash-bash

Thomas Rasmussen (14-05-2001)
Kommentar
Fra : Thomas Rasmussen


Dato : 14-05-01 07:26

>>>>> "martin" == martin <martin@jarl.dk> writes:

martin> Hej NG! Jeg har følgende problem: Jeg kan ikke køre et
martin> java-program ved at skrive

Hvilket directory står du i? hvis du ikke står i /home/koder, så skal
du have appended /home/koder til din classpath:

export CLASSPATH=/home/koder:$CLASSPATH

Jeg er iøvrigt ikke sikker på at classpath skal sættes op mere... er
det ikke blevet lavet rigtigt i java 1.3 så den selv finder en default
location på dens native klasser?

/Thomas

--
/"\ | "To alcohol! The cause of - and solution to -
\ / | all of life's problems!" -- Homer Simpson
x |
/ \ <-- (ASCII Ribbon Campain against html emails and postings!)

Martin Agersted Jarl (14-05-2001)
Kommentar
Fra : Martin Agersted Jarl


Dato : 14-05-01 15:57

Hej Thomas

Thomas Rasmussen wrote:

> Hvilket directory står du i? hvis du ikke står i /home/koder, så skal
> du have appended /home/koder til din classpath:
>
> export CLASSPATH=/home/koder:$CLASSPATH

Det ville ikke være så rart, hvis jeg også har kildekode andre steder --
og det har jeg. Så derfor er det ikke en acceptabel løsning. Jeg vil
derimod prøve Peter Makholms forslag.

> Jeg er iøvrigt ikke sikker på at classpath skal sættes op mere... er
> det ikke blevet lavet rigtigt i java 1.3 så den selv finder en default
> location på dens native klasser?
>

Det er desværre ikke min erfaring. Tværtimod. Jeg tror nok man kan blive
fri for at sætte CLASSPATH i windows-varianterne, men efter et stykke tid
'glemmes' CLASSPATH hvorefter man skal sætte den manuelt.

Mvh
Martin



Thomas Rasmussen (14-05-2001)
Kommentar
Fra : Thomas Rasmussen


Dato : 14-05-01 16:19

>>>>> "Martin" == Martin Agersted Jarl <martin@jarl.dk> writes:

Martin> Hej Thomas
Martin> Thomas Rasmussen wrote:

>> Hvilket directory står du i? hvis du ikke står i /home/koder, så
>> skal du have appended /home/koder til din classpath:
>>
>> export CLASSPATH=/home/koder:$CLASSPATH

Martin> Det ville ikke være så rart, hvis jeg også har kildekode
Martin> andre steder -- og det har jeg. Så derfor er det ikke en
Martin> acceptabel løsning. Jeg vil derimod prøve Peter Makholms
Martin> forslag.

Jeps.... men læs herunder...


Martin> Det er desværre ikke min erfaring. Tværtimod. Jeg tror nok
Martin> man kan blive fri for at sætte CLASSPATH i
Martin> windows-varianterne, men efter et stykke tid 'glemmes'
Martin> CLASSPATH hvorefter man skal sætte den manuelt.

Jeg sidder ligenu og udvikler java på både linux og solaris med jdk
1.3, og har _ikke_ sat $CLASSPATH... snip fra `man javac`

.... The user class path is defined by setting the CLASSPATH
environment variable or by using the -classpath command line
option....

<and continues>

....
-classpath classpath
Sets the user class path, overriding the user class
path in the CLASSPATH environment variable. If
neither CLASSPATH or -classpath is specified, the
user class path consists of the current directory.
See Setting the Class Path for more details.

If the -sourcepath option is not specified, the
user class path is searched for source files as
well as class files.
....

Tjaa... der står simpelt hen at CLASSPATH ikke er nødvendig, og er min
klare erfaring... Det var vistnok tilbage i jdk 1.1.8 (samt måske 1.2)
at man skulle sætte CLASSPATH til der hvor man havde sin java
installation...

Den jdk jeg bruger stammer fra SUN's egen side, dvs. det ikke er nogen
custom built pakke fra en eller anden tilfældig distribution. Og lidt
nærmere undersøgelse viser også at <installdir>/bin/java er et link
til en wrapper der ser ud til at sætte de nødvendige paths og lign
således at man selv slipper for at rode med det.

/Thomas

--
/"\ | "To alcohol! The cause of - and solution to -
\ / | all of life's problems!" -- Homer Simpson
x |
/ \ <-- (ASCII Ribbon Campain against html emails and postings!)

Martin Agersted Jarl (14-05-2001)
Kommentar
Fra : Martin Agersted Jarl


Dato : 14-05-01 16:43

Hej Thomas

Thomas Rasmussen wrote:

[snip]

>
> Jeg sidder ligenu og udvikler java på både linux og solaris med jdk
> 1.3, og har _ikke_ sat $CLASSPATH... snip fra `man javac`
>
> ... The user class path is defined by setting the CLASSPATH
> environment variable or by using the -classpath command line
> option....
>
> <and continues>
>
> ...
> -classpath classpath
> Sets the user class path, overriding the user class
> path in the CLASSPATH environment variable. If
> neither CLASSPATH or -classpath is specified, the
> user class path consists of the current directory.
> See Setting the Class Path for more details.
>
> If the -sourcepath option is not specified, the
> user class path is searched for source files as
> well as class files.
> ...
>
> Tjaa... der står simpelt hen at CLASSPATH ikke er nødvendig, og er min
> klare erfaring... Det var vistnok tilbage i jdk 1.1.8 (samt måske 1.2)
> at man skulle sætte CLASSPATH til der hvor man havde sin java
> installation...
>
> Den jdk jeg bruger stammer fra SUN's egen side, dvs. det ikke er nogen
> custom built pakke fra en eller anden tilfældig distribution. Og lidt
> nærmere undersøgelse viser også at <installdir>/bin/java er et link
> til en wrapper der ser ud til at sætte de nødvendige paths og lign
> således at man selv slipper for at rode med det.
>
> /Thomas

Du har sikkert ret. Og jeg ville klart foretrække SUNs egen jdk, men
desværre kan den ikke køre på min RH7.1 installation, så jeg har måttet ty
til IBM's som i øvrigt er ganske fin. Det kan være den kræver en eksplicit
CLASSPATH. Men det er kun spekulationer, fordi jeg nu sidder og kører
win98 (som går ned konstant).

Martin


Lars Hansen (15-05-2001)
Kommentar
Fra : Lars Hansen


Dato : 15-05-01 18:11

Man skal da ikke sige noget ondt om IBMs Java. Den performer
ret godt.

Men min løsning på problemet er at jeg i min /etc/profile
har følgende stående
export CLASSPATH=.:$CLASSPATH

Læg mærke til "." (current directory)


"Martin Agersted Jarl" <martin@jarl.dk> wrote in message
news:3AFFFD0B.380DE6E8@jarl.dk...
> Hej Thomas
>
> Thomas Rasmussen wrote:
>
> [snip]
>
> >
> > Jeg sidder ligenu og udvikler java på både linux og solaris med jdk
> > 1.3, og har _ikke_ sat $CLASSPATH... snip fra `man javac`
> >
> > ... The user class path is defined by setting the CLASSPATH
> > environment variable or by using the -classpath command line
> > option....
> >
> > <and continues>
> >
> > ...
> > -classpath classpath
> > Sets the user class path, overriding the user class
> > path in the CLASSPATH environment variable. If
> > neither CLASSPATH or -classpath is specified, the
> > user class path consists of the current directory.
> > See Setting the Class Path for more details.
> >
> > If the -sourcepath option is not specified, the
> > user class path is searched for source files as
> > well as class files.
> > ...
> >
> > Tjaa... der står simpelt hen at CLASSPATH ikke er nødvendig, og er min
> > klare erfaring... Det var vistnok tilbage i jdk 1.1.8 (samt måske 1.2)
> > at man skulle sætte CLASSPATH til der hvor man havde sin java
> > installation...
> >
> > Den jdk jeg bruger stammer fra SUN's egen side, dvs. det ikke er nogen
> > custom built pakke fra en eller anden tilfældig distribution. Og lidt
> > nærmere undersøgelse viser også at <installdir>/bin/java er et link
> > til en wrapper der ser ud til at sætte de nødvendige paths og lign
> > således at man selv slipper for at rode med det.
> >
> > /Thomas
>
> Du har sikkert ret. Og jeg ville klart foretrække SUNs egen jdk, men
> desværre kan den ikke køre på min RH7.1 installation, så jeg har måttet ty
> til IBM's som i øvrigt er ganske fin. Det kan være den kræver en eksplicit
> CLASSPATH. Men det er kun spekulationer, fordi jeg nu sidder og kører
> win98 (som går ned konstant).
>
> Martin
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408891
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste