Miljövariabelelände [LÖST]
Postat: 28 jan 2008, 21:06
Jag vet inte om det här är rätt ställe för min fråga men jag visste inte var jag skulle ställa den.
Kan nån reda ut det här med miljövariabler en gång för alla. Jag har förstått så långt att det är i .profile-filen man sätter PATH, CLASSPATH och andra variabler i Ubuntu(det verkar skilja sig åt mellan olika Linuxdistrubutioner). Men i vilken av alla .profile-filer ska man ändra, det finns ju flera stycken. Om man har en användare i systemet så har den en .profile-fil i sin hemkatalog. Sen har root sin .profile-fil och till sist finns en .profile-fil i /etc-mappen.
Nästa sak är hur man skriver, bl.a med export-kommandot. Jag har t.ex skrivit så här:
export PATH=$PATH.:/usr/jdk1.6.0_02/bin
till java installationen. Men jag har även sätt att det kan se ut så här:
export PATH=.:/usr/jdk1.6.0_02/bin:$PATH
eller så här:
PATH=$PATH.:/usr/jdk1.6.0_02/bin
export PATH
Andra varianter är:
export JAVA_HOME=/usr/jdk1.6.0_02
export $JAVA_HOME/bin:${PATH}
I mitt specifika fall handlar det om att komma åt plattformsberoende bibliotek då jag försöker använda JMF performance pack för att få komma åt en webbkamera i ett Javahack som jag håller på med. I det här fallet är det väldigt viktigt enligt specifikationen på sidan http://java.sun.com/products/java-media ... linux.html att alla miljövariabler är på rätt plats och på rätt sätt. Det är det här jag inte får att fungera då det är total oreda i den här miljövariabelfrågan. Jag är nu inte helt säker på om mina problem enbart beror på det här men att det är en del av problemet är jag nästan säker på. Ett felmeddelande kan se ut så här:
java.lang.UnsatisfiedLinkError: /usr/JMF-2.1.1e/lib/libjmv4l.so: libjmutil.so: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1647)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1005)
at CaptureWebcam.(CaptureWebcam.java:65)
at CaptureWebcam.main(CaptureWebcam.java:161)
Det här tror jag nu beror på att sökvägarna till JMF:en inte fungerar. En sak som indikerar detta är diagnostikappleten på sidan: http://java.sun.com/products/java-media ... stics.html som inte hittar jmf-klasserna om jag inte kopierar in jmf.jar i /java_home/jre/lib/ext mappen, vilket ju inte borde behövas om miljövariablerna är satta på rätt sätt.
Till saken kan sägas att jag har fått webbkameran att fungera i systemet, den går att använda med VLC.
Hoppas någon kan reda ut det här
Patrik
Kan nån reda ut det här med miljövariabler en gång för alla. Jag har förstått så långt att det är i .profile-filen man sätter PATH, CLASSPATH och andra variabler i Ubuntu(det verkar skilja sig åt mellan olika Linuxdistrubutioner). Men i vilken av alla .profile-filer ska man ändra, det finns ju flera stycken. Om man har en användare i systemet så har den en .profile-fil i sin hemkatalog. Sen har root sin .profile-fil och till sist finns en .profile-fil i /etc-mappen.
Nästa sak är hur man skriver, bl.a med export-kommandot. Jag har t.ex skrivit så här:
export PATH=$PATH.:/usr/jdk1.6.0_02/bin
till java installationen. Men jag har även sätt att det kan se ut så här:
export PATH=.:/usr/jdk1.6.0_02/bin:$PATH
eller så här:
PATH=$PATH.:/usr/jdk1.6.0_02/bin
export PATH
Andra varianter är:
export JAVA_HOME=/usr/jdk1.6.0_02
export $JAVA_HOME/bin:${PATH}
I mitt specifika fall handlar det om att komma åt plattformsberoende bibliotek då jag försöker använda JMF performance pack för att få komma åt en webbkamera i ett Javahack som jag håller på med. I det här fallet är det väldigt viktigt enligt specifikationen på sidan http://java.sun.com/products/java-media ... linux.html att alla miljövariabler är på rätt plats och på rätt sätt. Det är det här jag inte får att fungera då det är total oreda i den här miljövariabelfrågan. Jag är nu inte helt säker på om mina problem enbart beror på det här men att det är en del av problemet är jag nästan säker på. Ett felmeddelande kan se ut så här:
java.lang.UnsatisfiedLinkError: /usr/JMF-2.1.1e/lib/libjmv4l.so: libjmutil.so: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1647)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1005)
at CaptureWebcam.(CaptureWebcam.java:65)
at CaptureWebcam.main(CaptureWebcam.java:161)
Det här tror jag nu beror på att sökvägarna till JMF:en inte fungerar. En sak som indikerar detta är diagnostikappleten på sidan: http://java.sun.com/products/java-media ... stics.html som inte hittar jmf-klasserna om jag inte kopierar in jmf.jar i /java_home/jre/lib/ext mappen, vilket ju inte borde behövas om miljövariablerna är satta på rätt sätt.
Till saken kan sägas att jag har fått webbkameran att fungera i systemet, den går att använda med VLC.
Hoppas någon kan reda ut det här
Patrik