Java software en linux

Pagina: 1
Acties:

  • deepbass909
  • Registratie: April 2001
  • Laatst online: 23:11

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
Ik heb een probleempje om een java programma onder RedHat 9 te draaien.

Het programma is voor mij behoorlijk crusiaal, aangezien het het management software is van mijn Raid controller.

Omdat mijn machine standaard geen java geïnstalleerd had, heb ik bij Sun de JRE 2, versie 1.4.2_06 gedownload en geïnstalleerd.
Als ik de sample bestanden open, dan werkt alles probleemloos, maar als ik de software van mijn Raid controller probeer te starten krijg ik de volgende fout:
code:
1
2
Error: could not find libjava.so
Error: could not find Java 2 Runtime Environment


Op zich een duidelijke fout, maar als ik in code kijk van het programma, dan staan alle verwijzing (zo op het oog, ik weet niet hoe een shell script precies in elkaar steekt) goed.
Voor de duidelijkheid, ik het het script aan moeten passen, want het ging uit van een andere install-dir (/jre of /java ipv /usr/java/j2re1.4.2_06)

Ik heb hieronder het script staan. Wellicht dat daar nog ergens een fout zit.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/bin/sh
# starts the Storage Manager Agent

unset JAVA_HOME CLASSPATH JFLAGS 

OS=`uname -s`
case $OS in
   "UnixWare")
           INSTDIR=/opt/RaidMan
           if [ -d /usr/java2 ]; then   
          JAVA_HOME=/usr/java2
       elif [ -d /usr/jre2 ]; then       
          JAVA_HOME=/usr/jre2
       elif [ -d /usr/java ]; then      
          JAVA_HOME=/usr/java
           elif [ -d /usr/jre ]; then  
          JAVA_HOME=/usr/jre
       fi
           THREADS_FLAG=native 
           JAVA_COMPILER=NONE
           JFLAGS="-mx52m -ms8m"
           export JAVA_COMPILER JFLAGS
       ;;
   "OpenUNIX")
           INSTDIR=/opt/RaidMan
           if [ -d /usr/java2 ]; then      
          JAVA_HOME=/usr/java2
       elif [ -d /usr/jre2 ]; then       
          JAVA_HOME=/usr/jre2
       elif [ -d /usr/java ]; then      
          JAVA_HOME=/usr/java
           elif [ -d /usr/jre ]; then
              JAVA_HOME=/usr/jre
       fi
           THREADS_FLAG=native 
           JAVA_COMPILER=NONE
           JFLAGS="-mx52m -ms8m"
           export JAVA_COMPILER JFLAGS
       ;;
   "SCO_SV" )
       INSTDIR=/opt/RaidMan
           if [ -d /usr/java2 ]; then   
          JAVA_HOME=/usr/java2
       elif [ -d /usr/jre2 ]; then  
          JAVA_HOME=/usr/jre2
       elif [ -d /usr/java ]; then      
          JAVA_HOME=/usr/java
           elif [ -d /usr/jre ]; then 
          JAVA_HOME=/usr/jre
       fi           
       THREADS_FLAG=green 
           JAVA_COMPILER=NONE
            JFLAGS="-mx52m -ms8m"
           export JAVA_COMPILER JFLAGS
       ;;
   "Linux")
       INSTDIR=/usr/RaidMan
           Arch=`uname -m` 
           if [ "$Arch" = "ia64" ];then 
          JAVA_HOME="./IBMJava2-ia64-13"
       else        
              JAVA_HOME="./usr/java/j2re1.4.2_06"
           fi        
           JAVA_BIN=$JAVA_HOME/bin
           JAVA_LIB=$JAVA_HOME/lib/i386
       ;;
esac

if [ ! "$JAVA_BIN" ]; then
   JAVA_BIN=$JAVA_HOME/bin
fi

if [ ! "$JAVA_LIB" ]; then
   JAVA_LIB=$JAVA_HOME/lib/i386
fi

LD_LIBRARY_PATH=$INSTDIR:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH JAVA_HOME JAVA_BIN JAVA_LIB CLASSPATH THREADS_FLAG

cd $INSTDIR

if [ "$OS" = "Linux" ]; then   
      ./java -Djava.compiler=NONE -cp $INSTDIR/RaidMan.jar com.ibm.sysmgt.raidmgr.agent.ManagementAgent $* 
else
   if [ -f $JAVA_BIN/java ]; then
      $JAVA_BIN/java $JFLAGS -classpath $INSTDIR/RaidMan.jar:$JAVA_LIB/classes.zip com.ibm.sysmgt.raidmgr.agent.ManagementAgent $* &
   else
      $JAVA_BIN/jre $JFLAGS -nojit -cp $INSTDIR/RaidMan.jar -cp $JAVA_LIB/classes.zip com.ibm.sysmgt.raidmgr.agent.ManagementAgent $* &
   fi
fi


De install-dir is als volgt opgebouwd:
code:
1
2
3
4
/usr/java/j2re1.4.2_06/
/usr/java/j2re1.4.2_06/bin
/usr/java/j2re1.4.2_06/lib
/usr/java/j2re1.4.2_06/lib/i386


De libjava.so staat in /usr/java/j2re1.4.2_06/lib/i386

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • jkf
  • Registratie: Oktober 2000
  • Laatst online: 21-06-2025

jkf

Vermoedelijk heb je een . te veel laten staan in de regel waar je JAVA_HOME zet voor linux

P II 233 @ begane grond, rip (1997-2007), vervangen door vituele server uptime,


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 23:11

deepbass909

[☼☼] [:::][:::] [☼☼]

Topicstarter
nope, waar variable JAVA_HOME gezet wordt klopt helemaal (zie stukje code onderaan).
Daarnaast kan het script wel ./JAVA vinden, welke in $JAVA_HOME/bin (/usr/java/j2re1.6.2_06/bin) staat.
Ik ga er daarbij dus vanuit dat $JAVA_HOME goed gedefinieerd is.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 21:31

Kees

Serveradmin / BOFH / DoC
En als je het handmatig draait, dus gewoon:
/usr/java/j2re1.4.2_06/bin/java -classpath /usr/RaidMan/RaidMan.jar:/usr/java/j2re1.4.2_06/lib/i386/classes.zip com.ibm.sysmgt.raidmgr.agent.ManagementAgent $* &
Werkt het dan wel?

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 16-02 18:14

Robtimus

me Robtimus no like you

deepbass909 schreef op 04 november 2004 @ 16:21:
code:
1
2
3
...
              JAVA_HOME="./usr/java/j2re1.4.2_06"
...
Haal daar die . eens weg, dus /usr/java/j2re1.4.2_06
Anders werkt het alleen maar als je het vanuit / aanroept.

Stel je zit in /home/bla, dan wordt JAVA_HOME /home/bla/usr/java/j2re1.4.2_06

edit:
dat zei jkf dus ook al

[ Voor 11% gewijzigd door Robtimus op 04-11-2004 18:37 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs