Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 28

Thema: Java programmieren - CLASSPATH Problem?!

  1. #1
    Registrierter Benutzer
    Registriert seit
    May 2015
    Beiträge
    16

    Unhappy Java programmieren - CLASSPATH Problem?!

    Hey Leute, ich bin absoluter Newbe in Sachen Linux und Java, nun soll ich aber in der Uni programmieren. Da habe ich mir gedacht: "Probierst du mal Linux aus, weil es bock macht"

    Alles wunderbar, war überrascht wie tadellos alles installiert wurde, auch die JDK.
    So nun konnte ich programmieren und die class dateien wurden wunderbar im ordner /home/"meinname"/ gespeichert.

    Da ich aber ein virtueller Ästhetiker bin, möchte ich gerne meine ganzen CLASS dateien unter /home/"meinname"/Programmierung/class/ speichern und kompilieren.
    Durch den CLASSPATH verändert man doch dieses Verzeichnis, wo er die class Dateien erstellen soll, richtig?

    Also ins terminal eingegeben % export CLASSPATH=/Programmierung/class
    dann überprüft mit % echo $CLASSPATH ... scheinbar alles wunderbar, wird angezeigt,..
    Wenn ich jetzt aber, egal wo ich die .java speichere (im Hauptverzeichnis oder unter /Programmierung/class), zeigt mir das Terminal an:
    "Fehler: Hauptklasse Test wurde nicht gefunden" (Originalen Wortlaut habe ich nicht parat, da ich nicht Zuhause bin).

    Meine Vermutung: Habe etwas von "JAVA_HOME" gelesen.
    hat es damit was zutun?

    Danke schonmal

  2. #2
    naraesk
    Gast
    Nutzt du eine IDE oder machst du alles über die Konsole?

  3. #3
    Registrierter Benutzer
    Registriert seit
    May 2015
    Beiträge
    16
    Zitat Zitat von naraesk Beitrag anzeigen
    Nutzt du eine IDE oder machst du alles über die Konsole?
    Nutze Notepadqq und Konsole, keine IDE
    java -version funktioniert auch super
    selbst beim kompilieren kommt noch kein Fehler

  4. #4
    Fieses Frettchen Avatar von DrunkenFreak
    Registriert seit
    Dec 2003
    Beiträge
    3.315
    Fehlt evtl. nur die main-Klasse oder ist sie nicht richtig implementiert?

  5. #5
    Registrierter Benutzer
    Registriert seit
    May 2015
    Beiträge
    16
    Du meinst im Code implementiert? Doch, sollte sie, da ich eine Datei genommen habe, die ich, bevor ich die Änderung vorgenommen habe, auch kompilieren und ausgeben konnte.
    Ich kann ihn ja mal posten wenn ich zuhause bin

  6. #6
    Registrierter Benutzer
    Registriert seit
    May 2015
    Beiträge
    16
    So, also, komisches Szenario:
    Rechner an, "Schleifen.java" geöffnet (in /home/"meinname"/), versucht zu kompilieren, Fehlermeldung: "Permission denied".
    $ su ... passwort eingegeben, es hat funktioniert.
    (War aber mMn am anfang noch nicht, dass ich root rechte brauche?! Ist das denn normal??)

    Dann: Datei aus /"meinname"/ gelöscht... dafür in "/"meinname"/Programmierung/class" gespeichert. Fehler.
    Hauptklasse nicht gefunden. Also der Fehler von gestern.

    export CLASSPATH erneut eingegeben...
    Hauptklasse nicht gefunden.

    Also ich vermute, der nimmt den Classpath nicht an
    Code sollte clean sein (sehr schwierig bei dem aufwändigen Programm und JA, ich berechne in dem Programm nicht unbedingt die Quadratzahl )

    Code:
    public class Schleifen {
        public static void main(String[] args){
       
            for (int i=0; i<20; i++){
           
                System.out.println("Die Quadratzahl von i= "+i);
           
            }
           
        }
    }

  7. #7
    Fieses Frettchen Avatar von DrunkenFreak
    Registriert seit
    Dec 2003
    Beiträge
    3.315
    Solange du keine weiteren Klassen benutzt, brauchst du CLASSPATH nicht. Meine Vermtung ist eher, dass du nicht javac zum Kompilieren benutzt, sondern java.

    Mal ganz abgesehen davon, dass dein Programm keine Quadrate berechnet, sondern einfach nur i ausgibt.

  8. #8
    Registrierter Benutzer
    Registriert seit
    May 2015
    Beiträge
    16
    Zitat Zitat von DrunkenFreak Beitrag anzeigen
    Mal ganz abgesehen davon, dass dein Programm keine Quadrate berechnet, sondern einfach nur i ausgibt.
    Lesen hilft, habe ich im Text erwähnt, dass es das nicht tut.

    Also stimmt der Pfad für den Compiler nicht/ist falsch..
    Da kommen wir also doch zum begriff "JAVA_HOME" oder?
    Will endlich ungestört programmieren

  9. #9
    Mitglied
    Registriert seit
    Sep 2014
    Beiträge
    72
    Bevor das hier zur Ratenummer wird: Bei java sind die Fehlermeldungen wichtig. Bitte genauen Wortlaut der Fehlermeldung posten. Am besten per c&p.

    Zu JAVA_HOME - welches jdk verwendest du? Oracle oder openjdk? Wenn Oracle jdk, wie installiert?

    Das JAVA_HOME setzt du im Normalfall so:
    Code:
    export JAVA_HOME=/pfad/zu/deinem/jdk
    export PATH=$JAVA_HOME/bin:$PATH

  10. #10
    Fieses Frettchen Avatar von DrunkenFreak
    Registriert seit
    Dec 2003
    Beiträge
    3.315
    Zitat Zitat von booost Beitrag anzeigen
    Lesen hilft, habe ich im Text erwähnt, dass es das nicht tut.
    Auch so. Du benutzt wahrscheinlich das falsche Programm zum Kompilieren.

  11. #11
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.819
    Oder das falsche beim Ausführen
    Code:
    nopes@nopes:~$ ls -la  /usr/bin/java*
    lrwxrwxrwx 1 root root 22 Jul 10  2014 /usr/bin/java -> /etc/alternatives/java
    lrwxrwxrwx 1 root root 23 Jul 10  2014 /usr/bin/javac -> /etc/alternatives/javac
    nopes@nopes:~$ ls -la  /etc/alternatives/java*
    lrwxrwxrwx 1 root root 30 Jul 10  2014 /etc/alternatives/java -> /opt/java/jre1.7.0_60/bin/java
    lrwxrwxrwx 1 root root 31 Jul 10  2014 /etc/alternatives/javac -> /opt/java/jdk1.8.0_05/bin/javac
    nopes@nopes:~$ cat meine_java_welt/src/firstSteps/Hello.java 
    package firstSteps;
    public class Hello {
      public static void main(String[] args) {
        for (int i=0; i < args.length; i++) {
          System.out.println("Hello " + args[i]);
        }
      }  
    }
    nopes@nopes:~$ javac -d meine_java_welt/classes -s meine_java_welt/src meine_java_welt/src/firstSteps/Hello.java 
    nopes@nopes:~$ java -classpath meine_java_welt/classes/ firstSteps.Hello foo
    Exception in thread "main" java.lang.UnsupportedClassVersionError: firstSteps/Hello : Unsupported major.minor version 52.0
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$100(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
    nopes@nopes:~$ /opt/java/jdk1.8.0_05/bin/java -classpath meine_java_welt/classes/ firstSteps.Hello foo
    Hello foo
    nopes@nopes:~$ sudo update-alternatives --config java
    [sudo] password for nopes: 
    Es gibt 2 Auswahlmöglichkeiten für die Alternative java (welche /usr/bin/java bereitstellen).
    
      Auswahl      Pfad                            Priorität Status
    ------------------------------------------------------------
      0            /opt/java/jdk1.8.0_05/bin/java   100       Auto-Modus
      1            /opt/java/jdk1.8.0_05/bin/java   100       manueller Modus
    * 2            /opt/java/jre1.7.0_60/bin/java   99        manueller Modus
    
    Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
    oder geben Sie die Auswahlnummer ein: 1
    update-alternatives: /opt/java/jdk1.8.0_05/bin/java wird verwendet, um /usr/bin/java (java) im manueller Modus bereitzustellen
    nopes@nopes:~$ java -classpath meine_java_welt/classes/ firstSteps.Hello foo
    Hello foo
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  12. #12
    Registrierter Benutzer
    Registriert seit
    May 2015
    Beiträge
    16
    #doppelpost gelöscht...

  13. #13
    Registrierter Benutzer
    Registriert seit
    May 2015
    Beiträge
    16
    Ich verwende openjdk 6.
    java -version gibt mir folgendes aus, falls es hilft:

    Code:
    java -version
    java version "1.7.0_65"
    OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.14.04.1)
    OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
    Habe nun versucht, das JAVA_HOME Verzeichnis zu setzen mittels:
    Code:
    JDMStuff alexander # export JAVA_HOME=/Programme/jdk1.8.0_45
    JDMStuff alexander # export PATH=$JAVA_HOME/bin:$PATH
    anschließend

    Code:
    JDMStuff alexander # export CLASSPATH=/Programmierung/class
    JDMStuff alexander # javac Schleifen.java
    javac: file not found: Schleifen.java
    Usage: javac <options> <source files>
    use -help for a list of possible options
    JDMStuff alexander # javac Schleifen.java
    JDMStuff alexander # java Schleifen
    Fehler: Hauptklasse Schleifen konnte nicht gefunden oder geladen werden
    Geht weder in meinem gewollten Verzeichnis, noch im Hauptverzeichnis.
    Aber im Hauptverzeichnis wird dennoch eine .class Datei erstellt. Also kompiliert er ja was.

    Oder das falsche beim Ausführen
    Da sehe ich nicht durch
    Geändert von booost (11.05.15 um 20:39 Uhr)

  14. #14
    Mitglied
    Registriert seit
    Sep 2014
    Beiträge
    72
    Zitat Zitat von booost Beitrag anzeigen
    Code:
    JDMStuff alexander # export JAVA_HOME=/Programme/jdk1.8.0_45
    JDMStuff alexander # export PATH=$JAVA_HOME/bin:$PATH
    Gibt es dieses Verzeichnis wirklich bei dir? Poste bitte mal die Ausgab von
    Code:
    ls -l /Programme
    Zitat Zitat von booost Beitrag anzeigen
    Code:
    JDMStuff alexander # export CLASSPATH=/Programmierung/class
    Deine Dateien liegen im /Programmierung? Also direkt im Root-Verzeichnis und nicht unter deinem $HOME?

  15. #15
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.819
    zeig bzw. prüfe mal die Ausgaben von:
    Code:
    which java
    which javac
    Laufe den Links ggf. nach, siehe letzten Post von mir.

    Dein Programm läuft hier übrigens
    Code:
    nopes@nopes:~$ javac -d meine_java_welt/classes/ meine_java_welt/src/Schleifen.java 
    nopes@nopes:~$ java -classpath meine_java_welt/classes/ Schleifen 
    Die Quadratzahl von i= 0
    Die Quadratzahl von i= 1
    Die Quadratzahl von i= 2
    Die Quadratzahl von i= 3
    Die Quadratzahl von i= 4
    Die Quadratzahl von i= 5
    Die Quadratzahl von i= 6
    Die Quadratzahl von i= 7
    Die Quadratzahl von i= 8
    Die Quadratzahl von i= 9
    Die Quadratzahl von i= 10
    Die Quadratzahl von i= 11
    Die Quadratzahl von i= 12
    Die Quadratzahl von i= 13
    Die Quadratzahl von i= 14
    Die Quadratzahl von i= 15
    Die Quadratzahl von i= 16
    Die Quadratzahl von i= 17
    Die Quadratzahl von i= 18
    Die Quadratzahl von i= 19
    nopes@nopes:~$ cat meine_java_welt/src/Schleifen.java 
    public class Schleifen {
        public static void main(String[] args){
       
            for (int i=0; i<20; i++){
           
                System.out.println("Die Quadratzahl von i= "+i);
           
            }
           
        }
    }
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

Ähnliche Themen

  1. Java Classpath
    Von blabub im Forum Anwendungen Allgemein, Software
    Antworten: 4
    Letzter Beitrag: 19.11.07, 08:39
  2. Java CLASSPATH Problem?
    Von Tomate im Forum Kompilieren von Kernel und Sourcen
    Antworten: 4
    Letzter Beitrag: 09.10.05, 20:46
  3. Gentoo Java Classpath Fehler
    Von flammenflitzer im Forum Kompilieren von Kernel und Sourcen
    Antworten: 0
    Letzter Beitrag: 20.12.03, 09:35
  4. Java CLASSPATH setzen unter Gentoo
    Von darktemplaaa im Forum System installieren und konfigurieren
    Antworten: 4
    Letzter Beitrag: 02.03.03, 20:40
  5. java classpath
    Von im Forum Anwendungen Allgemein, Software
    Antworten: 1
    Letzter Beitrag: 30.10.00, 22:16

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •