/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
java og windows
Fra : Tonny Gregersen


Dato : 01-10-02 19:05

Hej

Jeg har altid brugt Java under linux, men nu vil jeg lige checke et
program ved at køre det på en windowsmaskine. Hvordan er det lige med
afhængighedsforholdet?

Hvis jeg kompilerere en fil kaldet min_fil.java under linux, så får jeg
en fil kaldet min_fil.class. Da Java skulle være platformsuafhængigt, så
ville jeg umidelbart mene, at man kunne kopiere denne fil til en
windowsmaskine, og så eksekvere den som man normalt gør med "java min_fil".

Jeg har installeret Java 2 Runtime Environment, men den brokker sig over
følgende:

"Exception in thread "main" java.lang.NoClassDefFoundError: SwingTemplet
at SwingTemplet.main.(SwingTemplet.java:61)"

Den linie, hvor den tilsyneladende brokker sig er linien, hvor jeg
implementerer min WindowListener:

// Make window listener - only exit if confirmed through dialog box
WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
   int confirm =
    // Make dialog box for exit confirmation
    JOptionPane.showOptionDialog(frame,
             "Really Exit?",
             "Exit Confirmation",
             JOptionPane.YES_NO_OPTION,
             JOptionPane.QUESTION_MESSAGE,
             null,
             null,
             null);
   // If exit = yes button pressed, then exit program - otherwise
   // do nothing
   if (confirm == 0) {
    frame.dispose();
    System.exit(0);
   }
};
};

Det hele virker fint under Linux, og jeg ville mene at det også burde
gøre det under Windows, men det gør det åbenbart ikke.

Er der nogen som har en ide til hvad jeg gør forkert/har misforstået?

På forhånd tak
Tonny Gregersen


 
 
Tonny Gregersen (01-10-2002)
Kommentar
Fra : Tonny Gregersen


Dato : 01-10-02 19:23

Hej

Jeg har kigget lidt på NoClassDefFoundError, og så vidt jeg kan se, så
må mit problem skyldes, at programmet ikke kan finde nogle af de ting,
som jeg har inkluderet vha. import.

Jeg vil antage, at det er pga. min windowsopsætning. Hvad skal man sætte
op under windows?

Mvh.

Tonny Gregersen


Bertel Lund Hansen (01-10-2002)
Kommentar
Fra : Bertel Lund Hansen


Dato : 01-10-02 19:29

Tonny Gregersen skrev:

>Jeg vil antage, at det er pga. min windowsopsætning. Hvad skal man sætte
>op under windows?

Jeg lader Java installere sig selv (vælger dog drev og mappe), og
så tilføjer jeg D:\Java\Bin til path. Derefter installerer jeg
JCreator (IDE) som bare skal bare have to stier oplyst (til
programmer og docs), så virker det - også hvis jeg går uden om
JCreator og kompilerer i en DOS-boks.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Trygleren (01-10-2002)
Kommentar
Fra : Trygleren


Dato : 01-10-02 19:40

Hej Tonny,
prøv at køre dit program med det rekursive bibliotek som classpath - ie.
Java.exe Min_fil.class -classpath .

--
"Sic gorgiamus allos subjectatos nunc"
Lars 'Trygleren' Winther






Tonny Gregersen (01-10-2002)
Kommentar
Fra : Tonny Gregersen


Dato : 01-10-02 20:08

Trygleren wrote:
> Hej Tonny,
> prøv at køre dit program med det rekursive bibliotek som classpath - ie.
> Java.exe Min_fil.class -classpath .
>
> --
> "Sic gorgiamus allos subjectatos nunc"
> Lars 'Trygleren' Winther
>

Det virkede heller ikke, men tak alligevel.

Jeg installerede Java 2 SDK istedet, men fik samme fejl, da jeg kørte
programmet. Da jeg nu havde installeret Java 2 SDK istedet for Java 2
RE, ville jeg lige prøve at kompilere mit program på min windowsmaskine,
da det nu var muligt.

Efter at have kompileret det på min windowsmaskine virkede det uden
problemer, så man kan åbenbart ikke bare smide sine *.class-filer frem
og tilbage imellem forskellige systemer. Jeg ved ikke, om det er fordi
nogle af de biblioteker som mit program bruger ligger et andet sted, men
nu lader det til at det virker - blot jeg kompilerer det på en
windowsmaskine.

Med venlig hilsen
Tonny Gregersen




Trygleren (01-10-2002)
Kommentar
Fra : Trygleren


Dato : 01-10-02 20:23

> Efter at have kompileret det på min windowsmaskine virkede det uden
> problemer, så man kan åbenbart ikke bare smide sine *.class-filer frem
> og tilbage imellem forskellige systemer. Jeg ved ikke, om det er fordi
> nogle af de biblioteker som mit program bruger ligger et andet sted, men
> nu lader det til at det virker - blot jeg kompilerer det på en
> windowsmaskine.

Mystisk. Jeg skulle lige til at snakke om encodingformater, men det er jo
ikke relevant eftersom java er ren Unicode. Øv!

--
"Sic gorgiamus allos subjectatos nunc"
Lars 'Trygleren' Winther



Thorbjoern Ravn Ande~ (02-10-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 02-10-02 06:49

"Trygleren" <TryglerenSLETDETHER@tdcadsl.dk> writes:

> Mystisk. Jeg skulle lige til at snakke om encodingformater, men det er jo
> ikke relevant eftersom java er ren Unicode. Øv!

Der er problemer med at tage 1.4-oversatte klasser og køre under 1.3
og tidligere. Hvis man ønsker dette, skal man oversætte med et
specielt flag.

--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Frank Hahn (01-10-2002)
Kommentar
Fra : Frank Hahn


Dato : 01-10-02 20:32

"Tonny Gregersen" <tonnyg@kom.auc.dk> wrote in message
news:3D99F27F.9010703@kom.auc.dk...

<klip>

> Efter at have kompileret det på min windowsmaskine virkede det uden
> problemer, så man kan åbenbart ikke bare smide sine *.class-filer frem
> og tilbage imellem forskellige systemer. Jeg ved ikke, om det er fordi
> nogle af de biblioteker som mit program bruger ligger et andet sted, men
> nu lader det til at det virker - blot jeg kompilerer det på en
> windowsmaskine.

Lige et par spørgsmål:

Kørte du med samme Java JDK på både linux og windows?

Var versionen du benyttede til at kompilere under Linux f.eks.
en nyere version af suns (fx. 1.4) eller en af de mere linux-native
nogen, ala Kaffe?

Det er konklusionen, "så man kan åbenbart ikke bare smide sine *.class-filer
frem og tilbage imellem forskellige systemer", der /bekymrer/ mig lidt.
(fordi det burde egentlig virke, med visse forbehold, som i at java ikke
nødvendigvis kompilerer bagudkompatibelt og forskellige standard-pakker,
samt afvigende compilere).


MvH
/Frank




Bertel Lund Hansen (01-10-2002)
Kommentar
Fra : Bertel Lund Hansen


Dato : 01-10-02 20:43

Frank Hahn skrev:

>Det er konklusionen, "så man kan åbenbart ikke bare smide sine *.class-filer
>frem og tilbage imellem forskellige systemer", der /bekymrer/ mig lidt.

Også mig. Et websystem skulle altså gerne virke på alle klienter.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Soren 'Disky' Reinke (01-10-2002)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 01-10-02 21:13


"Bertel Lund Hansen" <nospam@lundhansen.dk> wrote in message
news:olujpu4p0e98f30fg4igjbmkm729uf6vgl@news.telia.dk...
> Frank Hahn skrev:
>
> >Det er konklusionen, "så man kan åbenbart ikke bare smide sine
*.class-filer
> >frem og tilbage imellem forskellige systemer", der /bekymrer/ mig lidt.
>
> Også mig. Et websystem skulle altså gerne virke på alle klienter.
>

Hvis du har fulgt SUN's standard og ikke brugt properitære systemmer, kan du
flytte det uden problemmer.

p.s. har ikke fulgt hele tråden, jeg svarer udelukkende på dette indlæg.

--
Med venlig hilsen
Søren Reinke
http://www.dykkercenterlangeland.dk
Danmarks eneste Dive Resort



Tonny Gregersen (01-10-2002)
Kommentar
Fra : Tonny Gregersen


Dato : 01-10-02 22:01


> Hvis du har fulgt SUN's standard og ikke brugt properitære systemmer, kan du
> flytte det uden problemmer.

Well - På både min Linux- og Windows-maskine har jeg hente sourcen til
Java 2 fra sun's hjemmeside og installeret den efter forskrifterne. De
kan fint kompilere og køre programmer, så det burde være i orden.

Jeg må indrømme, at jeg også undrede mig en del, da jeg troede at man
blot kunne tage sin kompilerede kode og anvende den på et andet
operativsystem, da det burde være op til java-fortolkeren at klare
systemspecifikke ting.

Jeg kan dog ikke sige andet end at mit program tilsyneladende ikke kan
anvendes på denne måde. Grunden til dette kender jeg desværre ikke, og
jeg sidder derfor pt. og ligner et stort spørgsmålstegn.

Med venlig hilsen
Tonny Gregersen



Martin Møller Bæk (01-10-2002)
Kommentar
Fra : Martin Møller Bæk


Dato : 01-10-02 22:15

Jeg har selv fået samme fejl, og da skyldtes det,
at jeg brugte en JRE ver. 1.3, mens det var kompilet
med J2SDK 1.4.x. Det kunne den ikke finde ud af,
hvilket man heller ikke kan forvente.

Men er det samme udgave, du bruger, burde
det virke uden af omkompilere.
Jeg har dog i tidligere versioner af java
set, at der kan være små forskelle.
Et program, der virkede fint under Unix, havde
en lille funktionsmæssig fejl under windows,
også selv om det var kompilet igen.

Mvh.
Martin MB


Jonathan Stein (01-10-2002)
Kommentar
Fra : Jonathan Stein


Dato : 01-10-02 23:06

Tonny Gregersen wrote:

> Jeg kan dog ikke sige andet end at mit program tilsyneladende ikke kan
> anvendes på denne måde. Grunden til dette kender jeg desværre ikke, og
> jeg sidder derfor pt. og ligner et stort spørgsmålstegn.

Mit gæt vil stadig være, at en classpath el.l. ikke har været sat korrekt. Har
du prøvet at kopiere en class-fil kompileret under Unix over på Windows-systemet
efter det er kommet til at virke? (Hvis du overfører noget med FTP, så husk at
overføre i binary mode).

M.v.h.

Jonathan

--
Nyt alternativ til egen server: JSP Enterprise hotel med adgang til
Enterprise Java Beans, egen Java Virtual Machine og egen IP-adresse
(giver mulighed for eget SSL-certifikat).
http://www.jsp-hotel.dk/




Tonny Gregersen (01-10-2002)
Kommentar
Fra : Tonny Gregersen


Dato : 01-10-02 22:07

Frank Hahn wrote:
> Kørte du med samme Java JDK på både linux og windows?
>
> Var versionen du benyttede til at kompilere under Linux f.eks.
> en nyere version af suns (fx. 1.4) eller en af de mere linux-native
> nogen, ala Kaffe?

Jeg kører begge steder med Java 2 SDK 1.4.0 på min Linux maskine og Java
2 SDK 1.4.1 på min windowsmaskine, så det burde vist være i orden.

Med venlig hilsen
Tonny Gregersen


Frank Hahn (01-10-2002)
Kommentar
Fra : Frank Hahn


Dato : 01-10-02 22:34

"Tonny Gregersen" <tonnyg@kom.auc.dk> wrote in message
news:3D9A0E5D.1040901@kom.auc.dk...
> Frank Hahn wrote:
> > Kørte du med samme Java JDK på både linux og windows?
> >
> > Var versionen du benyttede til at kompilere under Linux f.eks.
> > en nyere version af suns (fx. 1.4) eller en af de mere linux-native
> > nogen, ala Kaffe?
>
> Jeg kører begge steder med Java 2 SDK 1.4.0 på min Linux maskine og Java
> 2 SDK 1.4.1 på min windowsmaskine, så det burde vist være i orden.

Jeg er enig i at det /burde/ være i orden.

Java bør til hver en tid kunne afvikle bytecode genereret af
ældre versioner af compilere. Er der en chance for at linux
udgaven har været en "beta"-version af 1.4.0 ?
Der var en overgang, hvor de stadig ikke havde fået
klassehierarkiet stabiliseret (navngivningsmæssigt).

Oh well, har ikke vovet mig over i at porte projekterne
til 1.4.x endnu, så jeg betragter 1.3.1_03 som værende
Sun's gave til menneskeheden lidt endnu.

Med venlige hilsener

/Frank




Tonny Gregersen (02-10-2002)
Kommentar
Fra : Tonny Gregersen


Dato : 02-10-02 09:51

Frank Hahn wrote
> Java bør til hver en tid kunne afvikle bytecode genereret af
> ældre versioner af compilere. Er der en chance for at linux
> udgaven har været en "beta"-version af 1.4.0 ?
> Der var en overgang, hvor de stadig ikke havde fået
> klassehierarkiet stabiliseret (navngivningsmæssigt).

Det kan godt være, at du har ret i at det er her problemet er, for den
Java 2 version som jeg har installeret på min linux-maskine er en
1.4.0_1-b3.

Med venlig hilsen
Tonny Gregersen


Thorbjoern Ravn Ande~ (02-10-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 02-10-02 06:50

Tonny Gregersen <tonnyg@kom.auc.dk> writes:

> Jeg kører begge steder med Java 2 SDK 1.4.0 på min Linux maskine og
> Java 2 SDK 1.4.1 på min windowsmaskine, så det burde vist være i orden.

Så er det ikke det. Hvordan flyttede du filerne?

--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Tonny Gregersen (02-10-2002)
Kommentar
Fra : Tonny Gregersen


Dato : 02-10-02 09:32

Thorbjoern Ravn Andersen wrote:
> Tonny Gregersen <tonnyg@kom.auc.dk> writes:
>
>
>>Jeg kører begge steder med Java 2 SDK 1.4.0 på min Linux maskine og
>>Java 2 SDK 1.4.1 på min windowsmaskine, så det burde vist være i orden.
>
>
> Så er det ikke det. Hvordan flyttede du filerne?

Jeg kører en webserver (Apache) på min linux-maskine, så jeg smed dem i
et dir på min webserver, og hentede dem på min windowsmaskine med
Internet Explorer.




Thorbjoern Ravn Ande~ (02-10-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 02-10-02 10:22

Tonny Gregersen <tonnyg@kom.auc.dk> writes:

> Jeg kører en webserver (Apache) på min linux-maskine, så jeg smed dem
> i et dir på min webserver, og hentede dem på min windowsmaskine med
> Internet Explorer.

Saa kan det vaere den har vaeret flink og rettet dine linieskift og
derved smadret data. You never know.

Normalt er det en god ide at lave en JAR fil og flytte den. Herved
har du zip-formatets garanti for at der ikke er sket dataforandringer
undervejs (hvilket jeg tror der er).
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Frank Hahn (02-10-2002)
Kommentar
Fra : Frank Hahn


Dato : 02-10-02 11:00

"Thorbjoern Ravn Andersen" <thunderbear@bigfoot.com> wrote in message
news:kkbs6dkxgj.fsf@mimer.null.dk...
> Tonny Gregersen <tonnyg@kom.auc.dk> writes:
>
> > Jeg kører en webserver (Apache) på min linux-maskine, så jeg smed dem
> > i et dir på min webserver, og hentede dem på min windowsmaskine med
> > Internet Explorer.
>
> Saa kan det vaere den har vaeret flink og rettet dine linieskift og
> derved smadret data. You never know.
>
> Normalt er det en god ide at lave en JAR fil og flytte den. Herved
> har du zip-formatets garanti for at der ikke er sket dataforandringer
> undervejs (hvilket jeg tror der er).

Nope, Apache fixer intet i filerne. Den daffer dem over som binær data.

/Frank




Martin Moller Peders~ (02-10-2002)
Kommentar
Fra : Martin Moller Peders~


Dato : 02-10-02 13:33

In <aneg00$kd3$1@sunsite.dk> "Frank Hahn" <efgeho@hotmail.com> writes:

>"Thorbjoern Ravn Andersen" <thunderbear@bigfoot.com> wrote in message
>news:kkbs6dkxgj.fsf@mimer.null.dk...
>> Tonny Gregersen <tonnyg@kom.auc.dk> writes:
>>
>> > Jeg kører en webserver (Apache) på min linux-maskine, så jeg smed dem
>> > i et dir på min webserver, og hentede dem på min windowsmaskine med
>> > Internet Explorer.
>>
>> Saa kan det vaere den har vaeret flink og rettet dine linieskift og
>> derved smadret data. You never know.
>>
>> Normalt er det en god ide at lave en JAR fil og flytte den. Herved
>> har du zip-formatets garanti for at der ikke er sket dataforandringer
>> undervejs (hvilket jeg tror der er).

>Nope, Apache fixer intet i filerne. Den daffer dem over som binær data.

Men Internet Exploder kan godt smadre dataerne, hvis man er dum og
bruger den som ftp-client.

/Martin





Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste