[java] Applicatie onder Linux compileren/draaien

Pagina: 1
Acties:

  • Red devil
  • Registratie: December 1999
  • Laatst online: 09:14
[achtergrond verhaaltje]
Heb een Java applicatie gemaakt die via openJMS contact maakt met servers die ook een gedeelte van die applicatie draaien. In mijn geval draaien er vooral
clients met een windows omgeving de java applicatie en de servers die bepaalde taken gaan uitvoeren onder Linux.
Nu heb ik 2 programmas gemaakt, welke beide onder Windows prima draaien.
Onder linux probeer ik nu de serverside java applicatie aan de gang te krijgen wat dus absoluut niet lukt.
[/achtergrond verhaaltje]

Ik krijg dus telkens deze errors:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@server motifcontrollerserver]# 
[b]/usr/java/j2sdk1.4.1_02/bin/javac Timer.java[/b]

Timer.java:49: cannot resolve symbol
symbol  : class TimerListener
location: class motifcontrollerserver.Timer
    private TimerListener _listener;
            ^
Timer.java:54: cannot resolve symbol
symbol  : class TimerListener
location: class motifcontrollerserver.Timer
    public Timer(TimerListener listener, long millisecs) {
                 ^
2 errors


De applicatie staat in /home/motifcontroller in de dir /home/motifcontroller/motifcontrollerServer

In die dir een ls -al:
code:
1
2
3
-rw-r--r--  1 bla      bla 2586 Jul 31 19:15 motifcontrollerServer.jpx
-rw-r--r--  1 bla      bla 2238 Jul 31 19:15 motifcontrollerServer.jpx.local
drwxr-xr-x  3 bla       bla 4096 Jul 31 19:15 [b]src[/b]

een ls -al in de /src dir laat alle te sharen Jar files zien (sharedObjects.jar zijn de
te sharen objecten tussen mijn clients en server)
code:
1
2
3
4
5
6
7
-rw-r--r--  1 bla       bla      31605 Jul 31 19:15 commons-logging-1.0.3.jar
-rw-r--r--  1 bla      bla      202745 Jul 31 19:15 exolabcore-0.3.7.jar
-rw-r--r--  1 bla      bla      27724 Jul 31 19:15 jms-1.0.2a.jar
-rw-r--r--  1 bla      bla      98496 Jul 31 19:15 jndi-1.2.1.jar
drwxr-xr-x  2 bla      bla      4096 Aug  1 17:04 [b]motifcontrollerserver[/b]
-rw-r--r--  1 bla      bla      1074877 Jul 31 19:15 openjms-0.7.6.1.jar
-rw-r--r--  1 bla      bla      2396 Jul 31 19:15 sharedObjects.jar

en als laatste een ls -al in motifcontrollerserver
code:
1
2
3
4
5
6
7
8
9
10
11
12
-rw-r--r--  1 bla bla 3688 Jul 31 19:14 ExecHelper.java
-rw-r--r--  1 bla bla 704 Jul 31 19:14 ExecProcessor.java
-rw-r--r--  1 bla bla 5378 Jul 31 19:15 MemServerStatsQueueReceive.java
-rw-r--r--  1 bla bla 3163 Jul 31 19:14 MemeApplication.java
-rw-r--r--  1 bla bla 10244 Jul 31 19:14 MemeServerPublishResults.java
-rw-r--r--  1 bla bla 6832 Jul 31 19:15 MemeServerQueueReceiveSynchronous.java
-rw-r--r--  1 bla bla 4064 Jul 31 19:15 ReadFileIntoByteArray.java
-rw-r--r--  1 bla bla 3746 Jul 31 19:54 RunMemeServer.java
-rw-r--r--  1 bla bla 1360 Jul 31 19:15 TaskBuffer.java
-rw-r--r--  1 bla bla 3260 Jul 31 19:15 Timer.java
-rw-r--r--  1 bla bla 186 Aug  1 17:04 [b]TimerListener.class[/b]
-rw-r--r--  1 bla bla 2371 Jul 31 19:15 TimerListener.java

Het is me gelukt om een java bestand te compileren zoals je ziet, dus met de javac is waarschijnlijk niks mis.

OK, in elke sourcefile staat bovenin de package: package motifcontrollerserver
Daarom ziet mijn CLASSPATH er met env er zo uit (laat niet alles zien):
code:
1
2
3
CLASSPATH=/home/motifcontroller/motifcontrollerServer/src/commons-logging-1.0.3.jar;
/home/motifcontroller/motifcontrollerServer/src/sharedObjects.jar;
/home/motifcontroller/motifcontrollerServer/src

Op papier lijkt alles toch goed te zijn? Desondanks krijg ik die irritante cannot resolve symbol errors :'(

Verwijderd

misschien moet je even het de classpath optie aanzetten bij javac

dus zoiets als javac -cp $CLASSPATH myfile.java

overigens zou ik als ik jou was sowieso overgaan op een beter build system zoals ant of maven.


Suc6

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 22-05 22:34

Gerco

Professional Newbie

Je package heet "motifcontrollerserver", maar de directory heet "motifcontrollerServer", dat maakt op windows niet uit, maar het linux filesystem is case-sensitive. Zet deze dus om naar de goede benaming (whatever that may be) en je probleem is waarschijnlijk opgelost.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Red devil
  • Registratie: December 1999
  • Laatst online: 09:14
Bedankt voor de replies, natuurlijk was de oplossing al even simpel als frustrerend:

classpath separatie teken wat ik gebruikte was een ; (punt komma)
Linux zeurde niet, maar het werkte toch niet. Moest dus : (dubbele punt)


Aargh! Maar goed, het werkt. :)