Java Development Kit Installation

Dieses Thema im Forum "Java/Mono/dotGNU" wurde erstellt von Sandra, 01.04.2008.

  1. Sandra

    Sandra Tripel-As

    Dabei seit:
    05.07.2007
    Beiträge:
    156
    Zustimmungen:
    0
    Hallo,

    ich habe vor wenigen Tagen angefangen JAVA, mit der Anwendung "netbeans", zu programmieren. Läuft auch alles ganz gut soweit. Allerdings schleichen sich immer wieder Meldung auf meinen Konsolenbildschirm, die mir Rätsel aufwerfen....

    Bevor ich die Meldungen durchgebe, sage ich erstmal wie ich bis dahin vorgegangen bin:

    1. Ich habe mir "J2EE JDK 1.3" von dieser Seite runtergeladen

    2. Habe es installiert in /opt/SUNWappserver/ (so hat mir der Installationsguide das vorgeschlagen)

    3. Wenn ich jetzt "netbeans" starten möchte bleibt er beim Laden eines spezifischen Moduls hängen und gibt mir eine Fehlermeldung aus

    siehe hier

    Also bin ich dem Rat gefolgt und habe in der Konsole

    Code:
    netbeans --jdkhome /opt/SUNWappserver/jdk
    eingegeben

    -> LÄUFT

    ............ Nun möchte ich aber nicht jedes mal diese Eingabe machen .............

    Somit habe ich mich informiert und herausgefunden das folgende Infos erstmal wichtig sind:

    set | grep -i java
    Wie man sieht fehlen die JDK Einträge

    versuche ich ins Verzeichnis /usr/bin/ einen symbolischen Link zu setzen bekomme ich diese Meldung:

    Code:
    ln -s /opt/SUNWappserver/jdk/bin/java
    ln: Erzeuge symbolische Verknüpfung „./java“: Die Datei existiert bereits
    ........... O.K. weiter gedacht .........................

    dann habe diese Eingabe versucht:

    Code:
    export PATH=$PATH: /opt/SUNWappserver/jdk/bin
    dieser Eintrag bleibt aber nur vorübergehend für die aktuelle Sitzung :-(

    Gut.... also im I-net gesucht..... TIPP: die etc/profile ändern....

    Wenn ich mir meine /etc/profile anschaue verstehe ich nur Bahnhof....

    Ich stell sie mal hier rein:

    Code:
    # /etc/profile for SuSE Linux
    #
    # PLEASE DO NOT CHANGE /etc/profile. There are chances that your changes
    # will be lost during system upgrades. Instead use /etc/profile.local for
    # your local settings, favourite global aliases, VISUAL and EDITOR
    # variables, etc ...
    
    #
    # Check which shell is reading this file
    #
    if test -f /proc/mounts ; then
      case "`/bin/ls -l /proc/$$/exe`" in
        */bash)	is=bash ;;
        */ash)	is=ash  ;;
        */ksh)	is=ksh  ;;
        */pdksh)	is=ksh  ;;
        */zsh)	is=zsh  ;;
        */*)	is=sh   ;;
      esac
      #
      # `r' in $- occurs *after* system files are parsed
      #
      for a in $SHELL ; do
        case "$a" in
          */r*sh)
            readonly restricted=true ;;
          -r*|-[!-]r*|-[!-][!-]r*)
            readonly restricted=true ;;
          --restricted)
            readonly restricted=true ;;
        esac
      done
    else
      is=sh
    fi
    
    #
    # Initialize terminal
    #
    tty=`tty 2> /dev/null`
    test $? -ne 0 && tty=""
    if test -O "$tty" -a -n "$PS1"; then
        test -z "${TERM}"		&& { TERM=linux; export TERM; }
        test "${TERM}" = "unknown"	&& { TERM=linux; export TERM; }
        # Do not change settings on local line if connected to remote
        if test -z "$SSH_TTY" ; then
    	test -x /bin/stty     && /bin/stty sane cr0 pass8 dec
    	test -x /usr/bin/tset && /usr/bin/tset -I -Q
        fi
        # on iSeries virtual console, detect screen size and terminal
        if test -d /proc/iSeries -a \( "$tty" = "/dev/tty1" -o "$tty" = "/dev/console" \) ; then
            LINES=24
    	COLUMNS=80
    	export LINES COLUMNS TERM
            if test -x /bin/initviocons ; then
    	     eval `/bin/initviocons -q -e`
    	fi
        fi
    fi
    unset TERMCAP
    
    #
    # Time until a complete key sequence must have arrived
    #
    #ESCDELAY=2000
    #export ESCDELAY
    
    #
    # The user file-creation mask
    #
    # The global umask value is stored in /etc/login.defs and
    # will be set by pam_umask.so (see "man pam_umask").
    #umask 022
    
    #
    # Setup for gzip and (t)csh users
    #
    if test -z "$PROFILEREAD" ; then
        # GZIP=-9
        # export GZIP
        CSHEDIT=emacs
        export CSHEDIT
    fi
    
    #
    # ksh/ash sometimes do not know
    #
    test -z "$UID"  && readonly  UID=`id -ur 2> /dev/null`
    test -z "$EUID" && readonly EUID=`id -u  2> /dev/null`
    test -z "$USER" && USER=`id -un 2> /dev/null`
    test -z "$MAIL" && MAIL=/var/spool/mail/$USER
    test -z "$HOST" && HOST=`/bin/hostname -s 2> /dev/null`
    test -z "$CPU"  &&  CPU=`/bin/uname -m 2> /dev/null`
    test -z "$HOSTNAME" && HOSTNAME=`/bin/hostname 2> /dev/null`
    test -z "$LOGNAME"  && LOGNAME=$USER
    case "$CPU" in
        i?86) HOSTTYPE=i386   ;;
        *)    HOSTTYPE=${CPU} ;;
    esac
      OSTYPE=linux
    MACHTYPE=${CPU}-suse-${OSTYPE}
    # Do NOT export UID, EUID, USER, and LOGNAME
    export MAIL HOST CPU HOSTNAME HOSTTYPE OSTYPE MACHTYPE
    
    #
    # You may use /etc/initscript, /etc/profile.local or the
    # ulimit package instead to set up ulimits and your PATH.
    #
    # if test "$is" != "ash" -a ! -r /etc/initscript; then
    #     ulimit -Sc 0		# don't create core files
    #     ulimit -Sd $(ulimit -Hd)
    #     ulimit -Ss $(ulimit -Hs)
    #     ulimit -Sm $(ulimit -Hm)
    # fi
    
    #
    # Make path more comfortable
    #
    if test -z "$PROFILEREAD" ; then
        PATH=/usr/local/bin:/usr/bin:/bin
        if test "$HOME" != "/" ; then
    	for dir in $HOME/bin/$CPU $HOME/bin ; do
    	    test -d $dir && PATH=$dir:$PATH
    	done
        fi
        if test "$UID" = 0 ; then
    	test -d /opt/kde3/sbin  && PATH=/opt/kde3/sbin:$PATH
    	PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH
        fi
        for dir in	/usr/X11/bin \
    		/usr/bin/X11 \
    		/usr/X11R6/bin \
    		/var/lib/dosemu \
    		/usr/games \
    		/opt/bin \
    		/opt/kde3/bin \
    		/opt/kde2/bin \
    		/opt/kde/bin \
    		/usr/openwin/bin \
    		/opt/cross/bin
        do
    	test -d $dir && PATH=$PATH:$dir
        done
        unset dir
        export PATH
    fi
    
    #
    # Many programs using readline library for line editing
    # should know about this (e.g. bash)
    #
    if test -z "$INPUTRC" ; then
        INPUTRC=/etc/inputrc
        test -s $HOME/.inputrc && INPUTRC=$HOME/.inputrc
        export INPUTRC
    fi
    
    #
    # Most bourn shell clones knows about this
    #
    if test -z "$PROFILEREAD" ; then
        HISTSIZE=1000
        export HISTSIZE
    fi
    
    #
    # Set some environment variables for TeX/LaTeX
    #
    if test -n "$TEXINPUTS" ; then
        TEXINPUTS=":$TEXINPUTS:$HOME/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX"
    else
        TEXINPUTS=":$HOME/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX"
    fi
    export TEXINPUTS
    
    #
    # Configure the default pager on SuSE Linux
    #
    if test -z "$LESS" ; then
        LESS="-M -I"
        LESSOPEN="lessopen.sh %s"
        LESSCLOSE="lessclose.sh %s %s"
        LESS_ADVANCED_PREPROCESSOR="no"
        if test -s /etc/lesskey.bin ; then
    	LESSKEY=/etc/lesskey.bin
        fi
        PAGER=less
        MORE=-sl
        export LESSOPEN LESSCLOSE LESS LESSKEY PAGER LESS_ADVANCED_PREPROCESSOR MORE
    fi
    
    #
    # Minicom 
    #
    if test -z "$PROFILEREAD" ; then
        MINICOM="-c on"
        export MINICOM
    fi
    
    #
    # Current manpath
    #
    if test -z "$PROFILEREAD" ; then
        tmp="$MANPATH"
        unset MANPATH
        if test -n "$tmp" ; then
    	MANPATH="${tmp}:`test -x /usr/bin/manpath && /usr/bin/manpath -q`"
        else
    	MANPATH="`test -x /usr/bin/manpath && /usr/bin/manpath -q`"
        fi
        unset tmp
        export MANPATH
    fi
    
    #
    # Some applications do not handle the XAPPLRESDIR environment properly,
    # when it contains more than one directory. More than one directory only
    # makes sense if you have a client with /usr mounted via nfs and you want
    # to configure applications machine dependent. Uncomment the lines below
    # if you want this.
    #
    #XAPPLRESDIR="$XAPPLRESDIR:/var/X11R6/app-defaults:/usr/X11R6/lib/X11/app-defaults"
    #export XAPPLRESDIR
    
    #
    # Set INFOPATH to tell xemacs where he can find the info files
    #
    if test -z "$PROFILEREAD" ; then
        tmp="$INFODIR"
        if test -n "$tmp" ; then
    	INFODIR="${tmp}:/usr/local/info:/usr/share/info:/usr/info"
        else
    	INFODIR="/usr/local/info:/usr/share/info:/usr/info"
        fi
        INFOPATH=$INFODIR
        unset tmp
        export INFODIR INFOPATH
    fi
    
    #
    # These settings are recommended for old motif applications
    #
    if test -z "$PROFILEREAD" ; then
        if [ -r /usr/share/X11/XKeysymDB ]; then
    	export XKEYSYMDB=/usr/share/X11/XKeysymDB
        else
    	export XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
        fi
        if [ -d /usr/share/X11/nls ]; then
    	export XNLSPATH=/usr/share/X11/nls
        else
    	export XNLSPATH=/usr/X11R6/lib/X11/nls
        fi
    
        #
        # Midnight Commander needs this to run in color mode
        #
        COLORTERM=1
        export COLORTERM
    fi
    
    #
    # For RCS
    #
    #VERSION_CONTROL=numbered
    #export VERSION_CONTROL
    
    #
    # Source the files generated by SuSEconfig
    #
    # But do not source this if PROFILEREAD is already set to avoid
    # overriding locale variables already present in the environment
    #
    if test -z "$PROFILEREAD" ; then
        test -r /etc/profile.d/sh.ssh   && . /etc/profile.d/sh.ssh
        test -r /etc/SuSEconfig/profile && . /etc/SuSEconfig/profile
        if test -z "$SSH_SENDS_LOCALE" ; then
            if test -r /etc/sysconfig/language -a -r /etc/profile.d/sh.utf8 ; then
    	    tmp="$(. /etc/sysconfig/language; echo $AUTO_DETECT_UTF8)"
    	    test "$tmp" = "yes" && . /etc/profile.d/sh.utf8
    	    unset tmp
    	fi
        fi
    fi
    
    #
    # Source profile extensions for certain packages
    #
    if test -d /etc/profile.d -a -z "$PROFILEREAD" ; then
        for s in /etc/profile.d/*.sh ; do
    	test -r $s && . $s
        done
        unset s
    fi
    
    if test "$is" != "ash" ; then
        #
        # And now let's see if there is a local profile
        # (for options defined by your sysadmin, not SuSE Linux)
        #
        test -s /etc/profile.local && . /etc/profile.local
    fi
    
    #
    # System wide configuration of bourne shells like ash
    #
    if test "$is" != "ksh" -a -z "$PROFILEREAD" ; then
        ENV=/etc/bash.bashrc
        export ENV
    fi
    
    #
    # Avoid overwriting user settings if called twice
    #
    if test -z "$PROFILEREAD" ; then
        readonly PROFILEREAD=true
        export PROFILEREAD
    fi
    
    #
    # Standard ssh command does not do an login, therefore
    # /etc/profile will be sourced by /etc/bash.bashrc
    #
    if test -z "$_SOURCED_FOR_SSH" ; then
        #
        # System BASH specials, maybe also good for other shells
        # Note that ksh always reads /etc/ksh.kshrc
        #
        if test "$is" != ksh ; then
    	test -r /etc/bash.bashrc && . /etc/bash.bashrc
        fi
        if test -n "$restricted" ; then
    	readonly _HOMEBASHRC=true
        fi
        if test "$is" = "bash" -a -z "$_HOMEBASHRC" ; then
    	# loop detection
    	readonly _HOMEBASHRC=true
    	test -r $HOME/.bashrc && . $HOME/.bashrc
        fi
    
        #
        # KSH specials
        #
        if test "$is" = "ksh" -a -r /etc/ksh.kshrc ; then
    	if test -n "$restricted" ; then
    	    readonly _HOMEKSHRC=true
    	fi
    	if test ! /etc/bash.bashrc -ef /etc/ksh.kshrc ; then
    	    test -r /etc/bash.bashrc && . /etc/bash.bashrc
    	fi
    	if test -n "$ENV" -a "$ENV" != "\$HOME/.kshrc" -a -z "$_HOMEKSHRC" ; then
    	    # loop detection
    	    readonly _HOMEKSHRC=true
    	    test -r $HOME/.kshrc && . $HOME/.kshrc
    	fi
        fi
    fi
    if test -n "$restricted" ; then
        PATH=/usr/lib/restricted/bin
        export PATH
    fi
    #
    # End of /etc/profile
    #
    
    ..................................................................

    Ich kann alle .class Dateien im Konqueror öffnen, aber ich möchte sie auch per Konsole öffnen können ohne diese Fehlermeldung zu bekommen:

    Code:
    20:26 kaefer:~ > java HalloWelt
    Exception in thread "main" java.lang.NoClassDefFoundError: HalloWelt
    Caused by: java.lang.ClassNotFoundException: HalloWelt
            at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    
    .............................................

    Ich hoffe, ich habe alle wichtigen Infos zusammengetragen um abschließend folgende konkrete Fragen zu stellen:

    a) was muss ich tun um den Befehl "javac" in der Konsole ausführen zu können?
    b) was muss ich tun um den Befehl "java" in der Konsole ausführen zu können?
    c) was muss ich tun um nicht ständig "netbeans --jdkhome <Verzeichnis zum jdk> angeben zu müssen?

    Ich bin für jede Hilfe dankbar......

    Netten Gruß
    Sandra
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 kostjaXP, 01.04.2008
    kostjaXP

    kostjaXP =[KT]=SUpOrt GUnNer=[KT]=

    Dabei seit:
    09.02.2007
    Beiträge:
    388
    Zustimmungen:
    0
    Ort:
    /home
    muss das nicht ein Link zu nem Verzeichnis sein?
    also etwa
    Code:
    ln -s /opt/SUNWappserver/jdk/bin
    ??
     
  4. #3 gropiuskalle, 01.04.2008
    gropiuskalle

    gropiuskalle terra incognita

    Dabei seit:
    01.07.2006
    Beiträge:
    4.857
    Zustimmungen:
    0
    Ort:
    Berlin
    Mal ganz schlicht gedacht: verwende doch einfach ein alias, z.B.:

    Code:
    alias blablubb="netbeans --jdkhome /opt/SUNWappserver/jdk"
    Mehr zum sehr nützlichen Befehl alias steht » hier «.

    Und einen dauerhaften Eintrag in $PATH erreichst Du, indem Du die fertige ausführbare Datei nach $PATH kopierst. Müsste eigentlich doch auch bei Java-Kisten hinhauen.
     
  5. #4 bytepool, 01.04.2008
    Zuletzt bearbeitet: 01.04.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    ich nehme an, du meinst wie du deine /etc/profile entsprechend anpassen kannst, so dass dein java bin immer direkt mit im PATH ist?

    Falls du das meinst, ich wuerde die /etc/profile eigentlich ueberhaupt nicht anpassen, da es dir ja wahrscheinlich nur um deinen eigenen user geht, und nicht unbedingt um jeden user des systems.

    Stattdessen wuerde ich den entsprechenden Eintrag am Ende deiner ~/.bashrc machen. Falls die Datei nicht existieren sollte, einfach anlegen.
    Wie der Eintrag aussehen muss hast du ja selbst schon rausgefunden.

    Wenn ich das noch richtig im Kopf habe, dann wird die ~/.bashrc fuer alle interaktiven (bash) shells aufgerufen, und die ~/.bash_profile fuer alle (bash) login shells.

    Du koenntest dir zum Beispiel einen alias fuer diesen Befehl definieren, netbhome, oder was weiss ich ;)
    Ein alias ist eigentlich nur ein anderer Name fuer einen Befehl, du koenntest z.B. ebenfalls am Ende deiner ~./bashrc noch den Eintrag
    Code:
    alias netbhome='netbeans --jdkhome <Verzeichnis zum jdk>'
    
    hinzufuegen.

    Edit:
    Wie kommst du denn auf die lustige Idee? ;)

    Aber zu dem Link, an Sandra, hast du mal geguckt welcher link da schon liegt? Er konnte das ja scheinbar nur nicht verlinken, weil der Link schon existiert. Also mal mit 'ls -l /usr/bin/java' schauen wohin der aktuelle Link zeigt.


    mfg,
    bytepool
     
  6. #5 bitmuncher, 01.04.2008
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Wie man ausserdem sieht hast du offenbar noch eine andere Java-Runtime installiert, worauf dein JAVA_HOME verweist und woher wahrscheinlich das Problem stammt, dass du den Link nicht erzeugen konntest. Du solltest einfach mal deine Umgebungsvariablen, die du brauchst, entsprechend in deine ~/.bashrc eintragen. Einfach folgendes in die Konsole eingeben:

    Code:
    cat >> ~/.bashrc << "EOF"
    JAVA_HOME=/opt/SUNWappserver/jdk
    JAVA_BINDIR=/opt/SUNWappserver/jdk/bin
    JAVA_ROOT=/opt/SUNWappserver/jdk
    PATH=/opt/SUNWappserver/jdk/bin:$PATH # haendisch installiertes Java bevorzugen
    export PATH JAVA_ROOT JAVA_BINDIR JAVA_HOME
    
    Alternativ löschst du das offenbar über den Paketmanager installierte JRE und verlinkst das händisch von dir installiert entsprechend in die notwendigen Pfade. Ersteres ist aber sicherlich der sauberere Weg.
     
  7. Gast1

    Gast1 Guest

    Ich werde das Gefühl nicht los, daß dieses ganze Gewurschtel möglicherweise unnötig ist.

    1. Die "netbeans" gibt es als fertiges RPM-Paket.

    2. Wenn ein fertiges RPM vom Distributor bereitgestellt wird, dann werden damit i.d.R. auch alle Abhängigkeiten für die Funktionalität des Paketes vom Distributor bereit gestellt.

    3. Das Paket netbeans liess sich per Paketmanager ohne Abhängigkeitsprobleme installieren.

    4. So sehen die Abhängigkeiten des Pakets aus (10.2, aber das dürfte hier unwesentlich sein).

    Code:
    -qR netbeans
    bash
    java >= 1.5.0
    rpmlib(VersionedDependencies) <= 3.0.3-1
    rpmlib(PayloadFilesHavePrefix) <= 4.0-1
    rpmlib(CompressedFileNames) <= 3.0.4-1
    /bin/sh
    rpmlib(PayloadIsBzip2) <= 3.0.5-1
    5. Ein Blick in das spec-File der openSUSE Java-Pakete zeigt Folgendes.

    Code:
    Source0:        [B]jdk[/B]-6u%{javaminver}-dlj-linux-i586.sh
    Daraus folgt, daß die Quelle schon Teile des Java Sun Development Kits enthalten könnte (und sehr wahrscheinlich auch enthalten wird).

    6. Beschreibug des Paketes "java-1_6_0-sun":

    Beschreibung des Paketes "java-1_6_0-sun-devel"

    Also stellt sich die Frage, welche extra-Funktionen (falls überhaupt vorhanden, ich nix JAVA-Progger) des J2EE-Paketes benötigt werden, die nicht schon in den Paketen des Distributors zu finden sind.

    Greetz,

    RM
     
  8. Sandra

    Sandra Tripel-As

    Dabei seit:
    05.07.2007
    Beiträge:
    156
    Zustimmungen:
    0
    Hi,

    ich bedanke mich für die vielen Antworten in so kurzer Zeit.

    Netbeans habe ich selbstverständlich über den Paketmanager installiert..... auf www.netbeans.org wird aber zum betreiben dieses Programms J2EE empfohlen... Aber ich werde das nochmal prüfen RainMaker...

    @bitmuncher

    Ich habe alles so eingegeben wie du es vorgeschlagen hast... Trotzdem bekomme ich bei der Eingabe

    Code:
    java HalloWelt 
    die Fehlermeldung....

    Ich habe jetzt mal ganz scharf nachgedacht....

    Es ist doch so, dass ich einen CLASSPATH in meiner .bashrc angegeben habe... aber meine .class Datei auf die ich zugreifen will ist in einem ganz anderen Verzeichnis....

    Somit müsste man doch eigentlich mit dem Befehl

    Code:
    java -cp
    arbeiten

    Doch ich weiß nicht wie man ihn zusammensetzt und aus der manpage werde ich nicht schlau.....
     
  9. #8 bytepool, 01.04.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    du kannst statt mit classpath zu arbeiten natuerlich auch einfach in das Verzeichnis mit den .class Dateien wechseln...
    Aber ansonsten ist auch die Benutzung der -cp Option denkbar einfach:
    Code:
    java -cp /path/to/classes HalloWelt
    
    mfg,
    bytepool
     
  10. Sandra

    Sandra Tripel-As

    Dabei seit:
    05.07.2007
    Beiträge:
    156
    Zustimmungen:
    0
    Also,

    ich habe jetzt alles was ich an J2EE und netbeans habe deinstalliert und es nochmals aufgespielt.....

    set | grep -i java
    Code:
    JAVA_BINDIR=/usr/local/java/jdk/bin
    JAVA_HOME=/usr/local/java/jdk
    JAVA_ROOT=/usr/local/java/jdk
    PATH=/usr/local/java/jdk/bin:/opt/kde3/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/hxtools/bin:/usr/X11R6/bin:/opt/gnome/bin
    sieht jetzt so aus....

    meine ~/.bashrc

    Code:
    #JAVA
    
    JAVA_BINDIR=/usr/local/java/jdk/bin;
    JAVA_HOME=/usr/local/java/jdk;
    JAVA_ROOT=/usr/local/java/jdk;
    PATH=/usr/local/java/jdk/bin:$PATH # haendisch installiertes Java bevorzugen
    export PATH JAVA_ROOT JAVA_BINDIR JAVA_HOME
    alias java=$JAVA_HOME/bin/java;
    alias javac=$JAVA_HOME/bin/javac;
    alias jar=$JAVA_HOME/bin/jar;
    Wenn ich die .class Datei im Konqueror öffne funktioniert es perfekt
    Code:
    executing:
            /usr/bin/java hallo.Hallo "":
    
    
    Hallo Welt
    Press key to exit ...

    ............ Allerdings verstehe ich nicht warum er auf /usr/bin/java zurückgreift .........

    -> Ja, gebe ich in der Konsole javac Hallo.java ein funktioniert das compilieren ohne Probleme

    -> Befinde ich mich im Verzeichnis der .class Datei und gebe java Hallo ein, bekomme ich immer wieder folgende Meldung:

    Code:
    Exception in thread "main" java.lang.NoClassDefFoundError: Hallo
    Caused by: java.lang.ClassNotFoundException: Hallo
            at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    .........Hm, ich verstehe die Meldung auch nicht wirklich ............

    -> Meine Idee: Ich vermute, dass es Probleme gibt bei dem CLASSPATH; Netbeans speichert die .class Datei nicht in dem im PATH angegeben Verzeichnis /usr/local/java/jdk/bin

    fällt jemandem noch was ein?

    Netten Gruß
    Sandra

    PS: 2 von 3 Problemen sind schon gelöst :-)
     
  11. #10 bitmuncher, 02.04.2008
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Liegt denn in "/usr/local/java/jdk/bin" der Interpreter?
     
  12. Gast1

    Gast1 Guest

    Ein per Paketmanager eingespieltes Paket, welches sich an die SUSE Package Conventions hält, legt _nie_ etwas in /usr/local ab.

    Also was hast Du da "wieder aufgespielt"?

    Normalerweise sollten die Postinstall-Scriptlets eines offiziellen java-RPM von openSUSE die Verknüpfungen selbstständig anlegen, ansonsten gibt es noch das Programm "update-alternatives".

    Greetz,

    RM
     
  13. Sandra

    Sandra Tripel-As

    Dabei seit:
    05.07.2007
    Beiträge:
    156
    Zustimmungen:
    0
    @bitmuncher

    javac liegt im Verzeichnis /usr/local/java/jdk/bin

    java liegt im Verzeichnis /usr/local/java/jdk/bin

    meintes Du das?

    @RainMaker

    Netbeans habe ich per RPM aus dem Paketmanager installiert

    http://www.netbeans.org/kb/60/java/quickstart.html


    Gruß
    Sandra
     
  14. #13 supersucker, 02.04.2008
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Jetzt Moment mal.

    Sandra, du bist dir auch sicher, das du eine J2EE JDK willst und brauchst?

    Das wage ich ehrlich gesagt stark zu bezweifeln.

    EE ist Enterprise Edition, wenn du mit Java erst anfängst (was mir "Hello World" Programme sagen), bist du mit dem Standard JDK - Paket deiner $Distribution ausreichend bedient.
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. Sandra

    Sandra Tripel-As

    Dabei seit:
    05.07.2007
    Beiträge:
    156
    Zustimmungen:
    0
    @supersucker

    ich bin der Anleitung auf dieser Seite gefolgt...

    http://www.netbeans.org/kb/60/java/quickstart.html

    da wird J2SE nahegelegt.....

    Bevor ich mir das ganze angelegt habe, habe ich auf dieser Seite

    http://packages.opensuse-community.org/

    nach JDK-Paketen ausschau gehalten... das benötigte wie in dem netbeans.org beschrieben ist nicht dabei....

    Sandra


    -------------- EDIT ------------------
    rpm -qa | grep -i netbeans
    Code:
    netbeans-j2ee-6.0.1-5.1
    netbeans-java-6.0.1-5.1
    netbeans-6.0.1-5.1
    
     
  17. Gast1

    Gast1 Guest

    Code:
    which java
    
    /usr/bin/java
    
    ls -ls $(which java)
    0 lrwxrwxrwx 1 root root 22 22. Dez 2006  /usr/bin/java -> /etc/alternatives/java
    
    ls -ls  /etc/alternatives/java
    0 lrwxrwxrwx 1 root root 42  1. Apr 23:26 /etc/alternatives/java -> /usr/lib/jvm/jre-1.6.0.u5.sr1-sun/bin/java
    
    rpm -qf /usr/lib/jvm/jre-1.6.0.u5.sr1-sun/bin/java
    
    [B]java-1_6_0-sun-1.6.0.u5-1[/B]
    
    which javac
    
    /usr/bin/javac
    
    ls -ls $(which javac)
    
    0 lrwxrwxrwx 1 root root 23  6. Jan 22:10 /usr/bin/javac -> /etc/alternatives/javac
    
    -ls /etc/alternatives/javac
    0 lrwxrwxrwx 1 root root 44  1. Apr 23:26 /etc/alternatives/javac -> /usr/lib/jvm/java-1.6.0.u5.sr1-sun/bin/javac
    
    rpm -qf /usr/lib/jvm/java-1.6.0.u5.sr1-sun/bin/javac
    
    [B]java-1_6_0-sun-devel-1.6.0.u5-1[/B]
     
Thema:

Java Development Kit Installation

Die Seite wird geladen...

Java Development Kit Installation - Ähnliche Themen

  1. Java Development Kit 8 mit sechs Monaten Verspätung freigegeben

    Java Development Kit 8 mit sechs Monaten Verspätung freigegeben: Oracle hat sein Java Development Kit (JDK) 8 mit rund einem halben Jahr Verspätung freigegeben. Glanzlicht dieser Veröffentlichung sind die lange...
  2. Werkstudent/ in als Mobile -Entwickler für Android (Java)

    Werkstudent/ in als Mobile -Entwickler für Android (Java): Werkstudent/ in als Mobile -Entwickler für Android (Java) Die DiOmega GmbH ist eine Agentur mit Sitz in Frankfurt am Main, die sich auf IT- und...
  3. Mobile -Entwickler für Android (Java) in Vollzeit (m/w)

    Mobile -Entwickler für Android (Java) in Vollzeit (m/w): Mobile -Entwickler für Android (Java) in Vollzeit (m/w) Die DiOmega GmbH ist eine Agentur mit Sitz in Frankfurt am Main, die sich auf IT- und...
  4. Java-Entwickler in Vollzeit (m/w)

    Java-Entwickler in Vollzeit (m/w): Java-Entwickler in Vollzeit (m/w) Die DiOmega GmbH ist eine Agentur mit Sitz in Frankfurt am Main, die sich auf IT- und Web-Dienstleistungen...
  5. iJUG: Sorge um JavaFX

    iJUG: Sorge um JavaFX: Für den iJUG mehren sich die Anzeichen, dass JavaFX keine große Zukunft mehr bei Oracle hat. So wurde die Unterstützung für die Version 8u33 von...