Java Sun

De SergiTurWiki

Share/Save/Bookmark
(S'ha redirigit des de: Java)
Dreceres ràpides: navegació, cerca

Contingut

Instal·lació

Debian/Ubuntu

A Debian/Ubuntu, Java és pot instal·lar directament dels [[Repositoris Ubuntu | repositoris]. Cal que tingueu activats el següents repositoris:

  • Debian: cal afegir els repositoris unstable/non-free.
  • Ubuntu: cal afegir el repositori multiverse (en les últimes versions d'Ubuntu aquest pas no cal fer-lo)

A l'hora d'instal·lar Java teniu dos opcions:

Si no desenvolupeu aplicacions tindreu prou amb JRE. Si sou desenvolupadors, o no teniou clar el que voleu fer i no us importa ocupar una mica més d'espai a disc, escolliu el SDK

Per instal·lar el JRE:

$ sudo apt-get install sun-java6-jre

Per instal·lar el JDK:

$ sudo apt-get install sun-java6-jdk

Si escriviu:

$ sudo apt-get install sun-java

i tabuleu dos cops...

$ sudo apt-get install sun-java
sun-java5-bin       sun-java5-jdk       sun-java5-src       sun-java6-fonts     sun-java6-plugin    sun-javadb-common   sun-javadb-javadoc
sun-java5-demo      sun-java5-jre       sun-java6-bin       sun-java6-javadb    sun-java6-source    sun-javadb-core     
sun-java5-doc       sun-java5-plugin    sun-java6-demo      sun-java6-jdk       sun-java6-src       sun-javadb-demo     
sun-java5-fonts     sun-java5-source    sun-java6-doc       sun-java6-jre       sun-javadb-client   sun-javadb-doc     

Us apareixeran totes els paquets relacionat amb Java de Sun que podeu instal·lar. Actualment (13/11/2008) als repositoris estan tant la versió 5 com la 6 de Java.

Per conèixer la versió exacte de java que heu instal·lat:

$ dpkg -L sun-java6-jdk | grep /usr/lib
 /usr/lib
/usr/lib/jvm
/usr/lib/jvm/java-6-sun-1.6.0.06
/usr/lib/jvm/java-6-sun-1.6.0.06/jre
/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib
/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386 
...

Podeu veure que la versió en aquesta cas és:

java-6-sun-1.6.0.06

La versió dels repositoris no és sempre la última, però sovint és més que suficient.

Podeu comprovar que teniu Java instal·lat escrivint:

$ java
Usage: java [-options] class [args...]
          (to execute a class)
  or  java [-options] -jar jarfile [args...]
          (to execute a jar file)

where options include:
   -d32          use a 32-bit data model if available

   -d64          use a 64-bit data model if available
   -client	  to select the "client" VM
   -server	  to select the "server" VM
   -hotspot	  is a synonym for the "client" VM  [deprecated]
                 The default VM is client.
                 
   -cp <class search path of directories and zip/jar files>
   -classpath <class search path of directories and zip/jar files>
                 A : separated list of directories, JAR archives,
                 and ZIP archives to search for class files.
   -D<name>=<value>
                 set a system property
   -verbose[:class|gc|jni]
                 enable verbose output
   -version      print product version and exit
   -version:<value>
                 require the specified version to run
   -showversion  print product version and continue
   -jre-restrict-search | -jre-no-restrict-search
                 include/exclude user private JREs in the version search
   -? -help      print this help message
   -X            print help on non-standard options
   -ea[:<packagename>...|:<classname>]
   -enableassertions[:<packagename>...|:<classname>]
                 enable assertions
   -da[:<packagename>...|:<classname>]
   -disableassertions[:<packagename>...|:<classname>]
                 disable assertions
   -esa | -enablesystemassertions
                 enable system assertions
   -dsa | -disablesystemassertions
                 disable system assertions
   -agentlib:<libname>[=<options>]
                 load native agent library <libname>, e.g. -agentlib:hprof
                   see also, -agentlib:jdwp=help and -agentlib:hprof=help
   -agentpath:<pathname>[=<options>]
                 load native agent library by full pathname
   -javaagent:<jarpath>[=<options>]
                 load Java programming language agent, see java.lang.instrument
   -splash:<imagepath>
                 show splash screen with specified image
NOTA: Si a l'escriure java no us surt exactament el que apareix en aquesta pàgina, aleshores potser que tingueu instal·lada una altre màquina 
virtual de Java. Consulteu la secció Activar el Java de Sun com alternativa per defecte.

Activar el Java de Sun com alternativa per defecte

I per fer que el Java de Sun sigui el per defecte

$ sudo update-java-alternatives -s java-1.6.0-sun

I creem la variable JAVA_HOME

$ echo 'JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.06"' | sudo tee -a /etc/environment

Per fer que aquesta variable sigui vàlida a la terminal a la que estem treballant:

$ source /etc/environment

Per que la variable sigui aplicable a tota la sessió cal tornar a iniciar la sessió (Ctrl+Alt+Backspace).

Instal·lació de la documentació

Aneu a la pàgina de descàrregues de Sun:

http://java.sun.com/javase/downloads

I baixeu-vos 'Java SE 6 Documentation . Guardeu el fitxer a la carpeta /tmp.

Ara aneu a la carpeta tmp i busqueu el fitxer:

$ cd /tmp
$ ls -la jdk-6u10-docs.zip 
-r-------- 1 sergi sergi 58890428 2008-11-14 13:52 jdk-6u10-docs.zip

Cal modificar el nom i els permisos:

$ sudo chown root.root jdk-6u10-docs.zip 
$ sudo mv jdk-6u10-docs.zip jdk-6-doc.zip

Ara podeu instal·lar els paquets:

$ sudo apt-get install sun-java6-source sun-java6-doc

Els fitxers instal·lats són:

$ dpkg -L sun-java6-source
/.
/usr
/usr/share
/usr/share/doc
/usr/lib
/usr/lib/jvm
/usr/lib/jvm/java-6-sun-1.6.0.07
/usr/lib/jvm/java-6-sun-1.6.0.07/src.zip
/usr/share/doc/sun-java6-source

La documentació esta a :

/usr/lib/jvm/java-6-sun/docs

I el codi font esta comprimit en un fitxer anomenat src.zip. Podem descomprimir amb

$ /usr/share/doc/sun-java6-jdk
$ sudo mkdir src
$ sudo mv src.zip src
$ cd src/
$ sudo unzip src.zip 

I aleshores la carpeta de fitxers font està a:

/usr/lib/jvm/java-6-sun/src

Compilar. javac

Creeu el codi font:

$ sudo joe holamon.java

class HelloWorldApp {
   public static void main(String[] args) {
       System.out.println("Hello World!"); // Display the string.
   }
}

Compileu:

$ javac holamon.java
NOTA: Compte!: El nom de l'executable no vindrà determinat pel nom del fitxer si no pel nom de la classe!. El fitxer creat és HelloWorldApp.class

I l'executeu amb:

$ java HelloWorldApp
NOTA: Un error típic és executar: $java HelloWorldApp.class

Resolució de problemes

java.lang.UnsatisfiedLinkError

Aquest tipus d'error és dona quan falta una llibreria nativa. Per exemple al utilitzat applets de Java OpenGL (jogl) podem tenir el següent error

Exception in thread "main" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path:

A Eclipse se soluciona afegint el .jar corresponent (en aquest cas gluegen-rt.jar) al Java Build Path i especificant la localització de la llibreria nativa (Native Library Location). Feu botó dret al nom del projecte i seguiu el següent camí:

Java Build Path/Add External Jar/Doble clic al jar per estendre'l/fer clic a Native Library Location/ i afegir la carpeta on esta el .jar.

Recursos:

JOGL

Buenas,

Como no me gusta mucho eso de bajarme cosas de internet teniendo paquetes de Debian, os pongo aquí un checklist que me ha servido para configurar el entorno bajo Debian Lenny. No es muy complicando mirando las instrucciones de instalación de la documentación, sólo que se tiene que adaptar un poco a cómo instala las cosas el gestor de paquetes:

# aptitude install sun-java6-jdk sun-java6-jre sun-java6-plugin

Con esto tendremos la VM y el entorno de ejecución (y el plugin para los navegadores, no tendremos que hacer nada más para activar java en los navegadores).


# aptitude install libjogl-java libjogl-jni

Instala los *.so y los *.jar correspondientes a los que salen en la documentación.

Apartir de aquí, tenemos que hacer los enlaces simbólicos de los ficheros de sistema a las localizaciones que pone en el documento de instalación del material (yo prefiero hacer enlaces simbólicos a copiar ficheros, pero funcionaría igual copiando):

# cd /usr/lib/jvm/java-6-sun/jre/lib/i386
# ln -s /usr/lib/jni/libjogl_awt.so .
# ln -s /usr/lib/jni/libjogl.so .
# ln -s /usr/lib/jni/libgluegen-rt.so .
# cd /usr/lib/jvm/java-6-sun/jre/lib/ext
# ln -s /usr/share/java/gluegen-rt.jar .
# ln -s /usr/share/java/jogl.jar .

Vegeu també

Recursos

IES Nicolau Copèrnic