"registreer" een binary file in linux (CentOS)

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 27-09 22:01
Ik heb een hele simpele vraag, maar ik weet 'm niet goed te verwoorden voor Google en kan daarom het antwoord niet vinden.

Ik heb een groep binary files in een map en ik wil deze allemaal kunnen aanspreken zonder dat ik het volledige pad hoef in te tikken.

Bijv, in plaats van:
$ /usr/java/jdknogwat/bin/java file.class


Wil ik gewoon kunnen typen:
$ java file.class


Als ik nu het "java" command gebruik, krijg ik een oudere versie (1.4.2). Ik wil die nieuwe gebruiken.
[root@localhost Desktop]# java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-46)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@localhost Desktop]# cd /usr/java/jdk1.6.0_21/bin
[root@localhost bin]# ./java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)


Het gaat hier om een 64bit versie van CentOS 5.4

[ Voor 45% gewijzigd door Gamebuster op 31-07-2010 14:53 ]

Let op: Mijn post bevat meningen, aannames of onwaarheden


Acties:
  • 0 Henk 'm!

Verwijderd

je moet de env variabel JAVA_HOME defineren door:

code:
1
export JAVA_HOME=(locatie van /usr/java/jdknogwat/bin )


in jouw ,profile.

[ Voor 54% gewijzigd door Verwijderd op 31-07-2010 14:55 ]


Acties:
  • 0 Henk 'm!

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 27-09 22:01
Verwijderd schreef op zaterdag 31 juli 2010 @ 14:53:
je moet de env variabel JAVA_HOME defineren
[root@localhost bin]# set JAVA_HOME /usr/java/jdk1.6.0_21/bin/
[root@localhost bin]# java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-46)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@localhost bin]# set JAVA_HOME /usr/java/jdk1.6.0_21/
[root@localhost bin]# java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-46)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@localhost bin]# 


Bedoel je zo? Want dit werkt niet.
Verwijderd schreef op zaterdag 31 juli 2010 @ 14:53:
je moet de env variabel JAVA_HOME defineren door:

code:
1
export JAVA_HOME=(locatie van /usr/java/jdknogwat/bin )


in jouw ,profile.
[root@localhost bin]# export JAVA_HOME=/usr/java/jdk1.6.0_21/bin/
[root@localhost bin]# java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-46)

[ Voor 18% gewijzigd door Gamebuster op 31-07-2010 14:58 ]

Let op: Mijn post bevat meningen, aannames of onwaarheden


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 06-10 17:29

Matis

Rubber Rocket

export JAVA_HOME=/usr/java/jdk1.6.0_21/


Dacht ik.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • burne
  • Registratie: Maart 2000
  • Niet online

burne

Mine! Waah!

code:
1
2
export JAVA_HOME=/usr/java/jdk1.6.0_21/
export PATH=$PATH;$JAVA_HOME/bin


anders kunnen je apps hun libs enzo niet vinden. En met 'export' modificeer je je hele environment. Als het werkt zet je dit in ~/.bashrc, zodat je het altijd kunt gebruiken.

I don't like facts. They have a liberal bias.


Acties:
  • 0 Henk 'm!

Verwijderd

Matis schreef op zaterdag 31 juli 2010 @ 14:57:
export JAVA_HOME=/usr/java/jdk1.6.0_21/bin


Dacht ik.
klopt.

Acties:
  • 0 Henk 'm!

  • BitProcessor
  • Registratie: Februari 2001
  • Laatst online: 05-10 23:53
doe eens

which java

"I think there is a world market for maybe five computers" - Thomas Watson, chairman of IBM, 1943


Acties:
  • 0 Henk 'm!

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 27-09 22:01
Matis schreef op zaterdag 31 juli 2010 @ 14:57:
export JAVA_HOME=/usr/java/jdk1.6.0_21/


Dacht ik.
[root@localhost bin]# export JAVA_HOME=/usr/java/jdk1.6.0_21/
[root@localhost bin]# java -version
java version "1.4.2"


[root@localhost bin]# export JAVA_HOME=/usr/java/jdk1.6.0_21
[root@localhost bin]# export PATH=$PATH;$JAVA_HOME/bin
bash: /usr/java/jdk1.6.0_21/bin: is a directory
[root@localhost bin]# java -version
java version "1.4.2"
[root@localhost bin]# which java
/usr/bin/java


Gewoon nieuwe jdk map daarheen gooien?

[ Voor 18% gewijzigd door Gamebuster op 31-07-2010 15:01 ]

Let op: Mijn post bevat meningen, aannames of onwaarheden


Acties:
  • 0 Henk 'm!

  • burne
  • Registratie: Maart 2000
  • Niet online

burne

Mine! Waah!

Niet. Apps kijken in $JAVA_HOME, en in /usr/java/jdk1.6.0_21/bin/ is geen libs (etc..) te vinden.

I don't like facts. They have a liberal bias.


Acties:
  • 0 Henk 'm!

  • burne
  • Registratie: Maart 2000
  • Niet online

burne

Mine! Waah!

Gamebuster schreef op zaterdag 31 juli 2010 @ 15:01:

[root@localhost bin]# export PATH=$PATH;$JAVA_HOME/bin
Even de ; door een : vervangen. Dit is nou wat men een tiepfaut noemt.

I don't like facts. They have a liberal bias.


Acties:
  • 0 Henk 'm!

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 27-09 22:01
burne schreef op zaterdag 31 juli 2010 @ 15:03:
[...]

Even de ; door een : vervangen. Dit is nou wat men een tiepfaut noemt.
[root@localhost bin]# export JAVA_HOME=/usr/java/jdk1.6.0_21
[root@localhost bin]# export PATH=$PATH:$JAVA_HOME/bin
[root@localhost bin]# java -version
java version "1.4.2"


Is er niet gewoon een command om de binaries in die map te "registreren" zodat je die binary overal kunt aanspreken? Ik dacht dat er een globale variable was met een lijst met mappen waar alle binaries inzitten, die je kon aanpassen.

[ Voor 23% gewijzigd door Gamebuster op 31-07-2010 15:07 ]

Let op: Mijn post bevat meningen, aannames of onwaarheden


Acties:
  • 0 Henk 'm!

  • mace
  • Registratie: Juni 2003
  • Laatst online: 05-10 15:53

mace

Sapere Aude

Dit is heel logisch want /usr/bin zit voor /usr/java/bla bla bla in je pad, dus hij zal na het vinden van /usr/bin/java ophouden met zoeken.

Je moet er dus voor zorgen dat hij vooraan je pad komt en dat doe je zo:

export PATH=$JAVA_HOME/bin:$PATH

Acties:
  • 0 Henk 'm!

  • burne
  • Registratie: Maart 2000
  • Niet online

burne

Mine! Waah!

Gamebuster schreef op zaterdag 31 juli 2010 @ 15:05:
[...]

[root@localhost bin]# export JAVA_HOME=/usr/java/jdk1.6.0_21
[root@localhost bin]# export PATH=$PATH:$JAVA_HOME/bin
[root@localhost bin]# java -version
java version "1.4.2"


Is er niet gewoon een command om de binaries in die map te "registreren" zodat je die binary overal kunt aanspreken? Ik dacht dat er een globale variable was met een lijst met mappen waar alle binaries inzitten, die je kon aanpassen.
Oh wacht, /usr/bin staat eerder in je pad, natuurlijk.

root@localhost bin]# export PATH=$JAVA_HOME/bin:$PATH

fixed.

I don't like facts. They have a liberal bias.


Acties:
  • 0 Henk 'm!

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 27-09 22:01
burne schreef op zaterdag 31 juli 2010 @ 15:08:
[...]


Oh wacht, /usr/bin staat eerder in je pad, natuurlijk.

root@localhost bin]# export PATH=$JAVA_HOME/bin:$PATH

fixed.
[root@localhost bin]# export PATH=$JAVA_HOME/bin:$PATH
[root@localhost bin]# java -version
java version "1.6.0_21"


Finally :D

Bedankt :D

Let op: Mijn post bevat meningen, aannames of onwaarheden


Acties:
  • 0 Henk 'm!

  • Raku
  • Registratie: November 2001
  • Laatst online: 23-09-2022

Raku

Mental Aid

Er zit v.z.i.w. een volgordelijkheid in de PATH variable, je moet dus de directory voor de andere directories zetten:

export JAVA_HOME=/usr/java/jdk1.6.0_21
export PATH=$JAVA_HOME/bin:$PATH


Daarna even met
which


controleren welke binary er dan gebruikt wordt.

//laat & spuit 11

Raku


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Dat is er ook: $PATH. In .bashrc of iets vergelijkbaars (als je bash gebruikt) staat de opstelling daar voor.
Normaalgesproken zou java e.d. samen met alle andere binaries in de standaardmappen moeten staan.
De mappen waarvan je zou moeten verwachten dat ze in je PATH staan:

/bin
/sbin
/usr/bin
/usr/sbin

en soms
/usr/local/bin
/usr/local/sbin

maar dat is als je lokaal gebouwde packages gebruikt. Dit is, samen met de andere padnamen, dacht ik de standaard van de Linux Standard Base, waaraan ook CentOS voldoet.

Als je java niet via een package manager installeert maar zelf bouwt en op de juiste plek zet, dan moet je dus die plek aangeven in je path. Verder zou het natuurlijk helpen als je je oudere versies gewoon verwijdert.

Acties:
  • 0 Henk 'm!

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 27-09 22:01
[root@localhost bin]# which java
/usr/java/jdk1.6.0_21/bin/java


Is goed dus, bedankt allen

Let op: Mijn post bevat meningen, aannames of onwaarheden


Acties:
  • 0 Henk 'm!

  • thegve
  • Registratie: Februari 2004
  • Laatst online: 17-09 08:23
/usr/bin/java is overigens hoogstwaarschijnlijk een symlink naar het pad waar nu je java staat.

(Op Ubuntu - welke met een alternatives systeem werkt, maar ook bij CentOS zijn het volgens mij symlinks ):
thegve@flappie:/tmp$ ls -al `which java`
lrwxrwxrwx 1 root root 22 2010-01-23 12:51 /usr/bin/java -> /etc/alternatives/java

Als het inderdaad een symlink is, kun je gewoon rm /usr/bin/java doen, en vervolgens ln -s <doel java> /usr/bin/java doen en klaar ben je.
Pagina: 1