Avatar billede slinky Nybegynder
20. januar 2006 - 17:05 Der er 27 kommentarer

sætte PATH i ubuntu.

yo!

har lige installeret suns java i /home/kristian/java/j2sdk1.4.2_10

nu er porblemet imidlertid at når jeg skal compile / køre en fil skal det gøres med kommandoen /home/kristian/java/j2sdk1.4.2_10/bin/javac fil.java og /home/kristian/java/j2sdk1.4.2_10/bin/java fil

Øverst i min .bash_profile er følgende linie indsat:
PATH=~/bin:"${PATH}":/home/kristian/java/j2sdk1.4.2_10/bin


Hvorfor virker det ikke??
Avatar billede simonvalter Praktikant
20. januar 2006 - 17:08 #1
prøv
export PATH=~/bin:/home/kristian/java/j2sdk1.4.2_10/bin
Avatar billede simonvalter Praktikant
20. januar 2006 - 17:12 #2
eller nok nærmere
export PATH=$PATH:~/bin:/home/kristian/java/j2sdk1.4.2_10/bin

og dobbelt check at sti er rigtig.
Avatar billede slinky Nybegynder
20. januar 2006 - 17:14 #3
så er vi et stykke af vejen. nu kan jeg bruge java og javac kommandoerne, hvis jeg først skriver source .bash_profile
Avatar billede simonvalter Praktikant
20. januar 2006 - 17:17 #4
det forstår jeg ikke lige?
.bash_profile burde blive indlæst ved login i shell.
Avatar billede strych9 Praktikant
20. januar 2006 - 17:22 #5
kig efter i:
/etc/profile og /etc/.profile
hvis du har dem.
Avatar billede slinky Nybegynder
20. januar 2006 - 17:23 #6
Update: når jeg adder linien "export PATH=~/bin:/home/kristian/java/j2sdk1.4.2_10/bin" øverst i min .bash_profile kan jeg bruge java og javac kommandoerne, hvis jeg først skriver source .bash_profile

Når jeg istedet adder linien "export PATH=$PATH:~/bin:/home/kristian/java/j2sdk1.4.2_10/bin" kan jeg ikke bruge nogen af delene

hmm...
Avatar billede slinky Nybegynder
20. januar 2006 - 17:25 #7
strych9: kig efter hvad?
Avatar billede strych9 Praktikant
20. januar 2006 - 17:26 #8
kig efter om de filer eksisterer og hvad der er i dem. De spiller også en rolle i forbindelse med path, men kun på nogle distributioner.
Avatar billede slinky Nybegynder
20. januar 2006 - 17:27 #9
/etc/profile:
----------------------------------------
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11"
else
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games"
fi

if [ "$PS1" ]; then
  if [ "$BASH" ]; then
    PS1='\u@\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
    . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

export PATH

umask 022


.bash_profile:
---------------------------------------
Avatar billede simonvalter Praktikant
20. januar 2006 - 17:27 #10
"source .bash_profile" kender jeg ikke lige noget til.. hvad gør den command?

husker du at logge ind og ud af din shell efter ændring?

eller evt en command tilsvarende til freebsd's rehash
Avatar billede slinky Nybegynder
20. januar 2006 - 17:27 #11
.bash_profile:
---------------------------------------
export PATH=$PATH:~/bin:/home/kristian/java/j2sdk1.4.2_10/bin
# ~/.bash_profile: executed by bash(1) for login shells.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/login.defs
#umask 022

# include .bashrc if it exists
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
Avatar billede strych9 Praktikant
20. januar 2006 - 17:29 #12
Er du root eller almindelig bruger ligenu slinky? fordi profile filen tester dette og der er en forskel.
Avatar billede slinky Nybegynder
20. januar 2006 - 17:31 #13
er alm bruger
Avatar billede strych9 Praktikant
20. januar 2006 - 17:34 #14
if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11"
else
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/home/kristian/java/j2sdk1.4.2_10/bin"
fi

skulle virke.. omend det er et lidt grimt hack.
Avatar billede slinky Nybegynder
20. januar 2006 - 17:40 #15
argh - det virker ikke.
Avatar billede strych9 Praktikant
20. januar 2006 - 17:42 #16
hmm nah, prøv lige at skrive "echo $PATH"
kan godt være den åd det og der så er noget andet galt.
Avatar billede slinky Nybegynder
20. januar 2006 - 18:06 #17
kristian@ubuntu:~$ echo $PATH
/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games:/home/kristian/java/j2sdk1.4.2_10/bin

det ser ud til den er kommet med
Avatar billede simonvalter Praktikant
20. januar 2006 - 18:12 #18
og hvad får du så af fejl når du kører java
Avatar billede slinky Nybegynder
20. januar 2006 - 18:13 #19
kristian@ubuntu:~/Desktop/sensorv2$ java SensorDriver
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
  at java.awt.Toolkit.getDefaultToolkit() (/usr/lib/libgcj.so.6.0.0)
  at java.awt.EventQueue.invokeLater(java.lang.Runnable) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.SwingUtilities.invokeLater(java.lang.Runnable) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.RepaintManager.addInvalidComponent(javax.swing.JComponent) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JComponent.revalidate() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JComponent.setOpaque(boolean) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JPanel.JPanel(java.awt.LayoutManager, boolean) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JPanel.JPanel() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JRootPane.createGlassPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JRootPane.getGlassPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JRootPane.JRootPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JFrame.createRootPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JFrame.getRootPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JFrame.frameInit() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JFrame.JFrame() (/usr/lib/libgcj.so.6.0.0)
  at SensorFrame.SensorFrame() (Unknown Source)
  at SensorDriver.main(java.lang.String[]) (Unknown Source)
  at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0)
  at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0)
Caused by: java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkToolkit not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./,file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
  at java.net.URLClassLoader.findClass(java.lang.String) (/usr/lib/libgcj.so.6.0.0)
  at java.lang.ClassLoader.loadClass(java.lang.String, boolean) (/usr/lib/libgcj.so.6.0.0)
  at java.lang.ClassLoader.loadClass(java.lang.String) (/usr/lib/libgcj.so.6.0.0)
  at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib/libgcj.so.6.0.0)
  at java.lang.Class.forName(java.lang.String) (/usr/lib/libgcj.so.6.0.0)
  at java.awt.Toolkit.getDefaultToolkit() (/usr/lib/libgcj.so.6.0.0)
  ...18 more
Avatar billede simonvalter Praktikant
20. januar 2006 - 18:19 #20
Det er så ikke sun java du får fat i men gcj ser det ud til
prøv og sæt /home/kristian/java/j2sdk1.4.2_10/bin før de andre.

export PATH=/home/kristian/java/j2sdk1.4.2_10/bin:~/bin:$PATH
Avatar billede slinky Nybegynder
20. januar 2006 - 18:26 #21
# ~/.bash_profile: executed by bash(1) for login shells.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/login.defs
#umask 022

export PATH=$PATH:/home/kristian/java/j2sdk1.4.2_10/bin:~/bin:$PATH

# include .bashrc if it exists
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi


VIRKER IKKE!
Avatar billede simonvalter Praktikant
20. januar 2006 - 18:36 #22
Du må altså være mere precis i din beskrivelse.. er vi tilbage hvor echo $PATH ikke i indeholder /home/kristian/java/j2sdk1.4.2_10/bin eller der det det stacktrace du får?

Men som jeg også sagde

/home/kristian/java/j2sdk1.4.2_10/bin skal være før den orginale PATH

export PATH=$PATH:/home/kristian/java/j2sdk1.4.2_10/bin:~/bin:$PATH

skal være

export PATH=/home/kristian/java/j2sdk1.4.2_10/bin:~/bin:$PATH
Avatar billede simonvalter Praktikant
20. januar 2006 - 18:37 #23
Hvis du har ændret /etc/profile til det som bliver sagt:
Kommentar: strych9
20/01-2006 17:34:2

så fjern det igen.
Avatar billede slinky Nybegynder
20. januar 2006 - 18:41 #24
vi er tilbage til punktet hvor det eneste sted jeg har sat PATH er i .bash_profile, hvor der står export PATH=/home/kristian/java/j2sdk1.4.2_10/bin:~/bin:$PATH

resultatet af en java kommando er:

kristian@ubuntu:~/Desktop/sensorv2$ java SensorDriver
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
  at java.awt.Toolkit.getDefaultToolkit() (/usr/lib/libgcj.so.6.0.0)
  at java.awt.EventQueue.invokeLater(java.lang.Runnable) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.SwingUtilities.invokeLater(java.lang.Runnable) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.RepaintManager.addInvalidComponent(javax.swing.JComponent) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JComponent.revalidate() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JComponent.setOpaque(boolean) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JPanel.JPanel(java.awt.LayoutManager, boolean) (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JPanel.JPanel() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JRootPane.createGlassPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JRootPane.getGlassPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JRootPane.JRootPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JFrame.createRootPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JFrame.getRootPane() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JFrame.frameInit() (/usr/lib/libgcj.so.6.0.0)
  at javax.swing.JFrame.JFrame() (/usr/lib/libgcj.so.6.0.0)
  at SensorFrame.SensorFrame() (Unknown Source)
  at SensorDriver.main(java.lang.String[]) (Unknown Source)
  at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0)
  at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0)
Caused by: java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkToolkit not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./,file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
  at java.net.URLClassLoader.findClass(java.lang.String) (/usr/lib/libgcj.so.6.0.0)
  at java.lang.ClassLoader.loadClass(java.lang.String, boolean) (/usr/lib/libgcj.so.6.0.0)
  at java.lang.ClassLoader.loadClass(java.lang.String) (/usr/lib/libgcj.so.6.0.0)
  at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib/libgcj.so.6.0.0)
  at java.lang.Class.forName(java.lang.String) (/usr/lib/libgcj.so.6.0.0)
  at java.awt.Toolkit.getDefaultToolkit() (/usr/lib/libgcj.so.6.0.0)
  ...18 more
Avatar billede simonvalter Praktikant
20. januar 2006 - 18:47 #25
paste lige:

echo $PATH

which java
Avatar billede slinky Nybegynder
20. januar 2006 - 18:49 #26
kristian@ubuntu:~/Desktop/sensorv2$ echo $PATH
/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games

kristian@ubuntu:~/Desktop/sensorv2$ which java
/usr/bin/java
Avatar billede simonvalter Praktikant
20. januar 2006 - 18:52 #27
Ja /home/kristian/java/j2sdk1.4.2_10/bin er jo ikke i PATH mere.

husker du at logge ud og ind af shell hver gang du ændrer?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester