GeinMedlem sedan sep. 20005 700 inlägg Jag har en applikation som fungerar utmärkt i Windows men när jag ska flytta den till unix och kompilera så lyckas jag inte. Vet inte riktigt om jag gör rätt.
Jag har två paket: simulation och pasture (pasture använder klasser i simulation)
Nu ligger java-filerna i /java/simulation/ respektive /java/pasture/
Försöker jag köra (från /java/-mappen)
javac -g -verbose -sourcepath ./simulation/*.java ./pasture/*.java
så får jag ett gäng fel. Paketet simulation går igenom fint men i pasture får jag massor av fel. T.ex:
./pasture/Wolf.java:239: cannot resolve symbol
symbol : variable position
location: class pasture.Wolf
if(!isPositionLegal(hostSystem, this.position)) {
position är en variabel som är definierad i en klass som Wolf (till slut) ärver ifrån men som ligger i simulation. Alla fel jag ser verkar bero på samma grej. Kompilatorn hittar inte metoder/variabler som en klass har som är definierade i en arvsklass från simulation.
Jag har provat att sätta CLASSPATH till de två paket-katalogerna utan framgång. Hur ska jag kompilera?
GeinMedlem sedan sep. 20005 700 inlägg Okej, jag skulle visst sätta classpath till katalogen före paketen, dvs /java/. Nu kan jag iaf kompilera.
När jag försöker starta programmet (java -classpath ../ PastureSimulation.class) så får jag följande fel:
Exception in thread "main" java.lang.NoClassDefFoundError: PastureSimulation/class
Jag har sökt lite och hittar
Thrown if the Java Virtual Machine or a classloader tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found.
Kan felet bero på att jag försöker starta genom SSH (från Windows. Sitter inte på samma dator) och att applikationen vill öppna fönster och härja?
Eller är det fel i klassökvägar igen?
spangoMedlem sedan juni 20008 205 inlägg Re: Kompilera på unix-maskin
Gein skrev:
java -classpath ../ PastureSimulation.class
Du ska ju inte ha med filändelsen, bara det kvalificerade klassnamnet. Så det ska väl typ vara java -classpath /java simulation.PastureSimulation
GeinMedlem sedan sep. 20005 700 inlägg Tack, spango! Du är en pärla ;)
Det fungerar fika nu!
Det som löste biffen för att vara exakt:
java -classpath ./ pasture/PastureSimulation