Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Java Installation

Empfohlene Antworten

Veröffentlicht

Hallo

folgendes Problem, ich möchte java bei mir in der Arbeit programmieren.

Jetzt hab ich jdk1.6 unter c:\jdk.6 installiert. Dann hab ich die Benutzervariable JAVA_HOME gesetzt und bei der Systemvariable path den pfad zum bin-Ordner eingefügt.

Nur um auszuprobieren hab ich folgende Class erstellt:

class HelloWorld

{

public static void main (String []args)

{

System.out.println("HelloWorld");

}

}

die datei hab ich im jdk.6 ordner im Class-Ordnergespeichert.

Wenn ich nun im CMD die datei auführenmöchte kommt folgender Fehlercode (Das Kompilieren funktioniert ja sogar ....)

C:\jdk.6\Class>javac HelloWorld.java

C:\jdk.6\Class>java HelloWorld

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld

Caused by: java.lang.ClassNotFoundException: HelloWorld

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:307)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

Could not find the main class: HelloWorld. Program will exit.

Ich weiß, dummes Problem, bin allerdings Anfänger und naja. Würds eben gerne lernen :)

lg kobey

_______________________________________________________________

Ist im Verzeichnis C:\jdk.6\Class die Datei HelloWorld.class vorhanden? Wenn nein, wohin hast Du die dann kompiliert? Die brauchst Du zum Ausführen mit "java".

Schöne Grüße,

Peter

Hmm, mit Deiner Beispielklasse funktioniert es bei mir.

Es sollte zwar nicht passieren, aber vielleicht ist ja der Classpath verdreht und nimmt das aktuelle Verzeichnis nicht mit auf. Probier mal folgendes: java -cp . HelloWorld

Das setzt den Classpath, also den Pfad (die Pfade), unter denen nach Klassen gesucht wird, explizit auf das Verzeichnis, in dem Du dich befindest. Dann musst Du natürlich das Kommando auch aus C:\jdk.6\Class heraus ausführen.

Peter

  • Autor

ok habs jetzt mal mit java -cp . HelloWorld ausprobiert, und da gehts einwandfrei. Aber die Pfade müssten normal auch alle stimmen...

Noch mal zur sicherheißt, was muss ich bei den Umgebungsvariablen alles machen? (Nur zur Kontrolle ob ich das richtige getan habe: zur variable "path" habe ich c:\jdk.6\bin angehängt und ich habe die Benutzervariable JAVA_HOME mit dem link c:\jdk.6 angelegt.)

lg Kobey

__________________________________________________________________

Die von Dir genannten Pfade haben damit nichts zu tun. Es könnte sein, dass es bei Dir eine global definierte Systemvariable CLASSPATH gibt, die auf irgendwas zeigt. Manche Java-Anwendungen haben das früher gemacht, damit ihr classpath gepasst hat. Das ist aber absolut schlechter Stil und sehr fehleranfällig.

Schöne Grüße,

Peter

  • Autor

ohhh jetzt gehts :) Hab das Public nich drin gehabt... is das eigl üblich, da public vor zu schreiben?

Vielen dank an euch und besonders an etreu ;)

lg kobey

__________________________________________________________________________

Wenn es deine Hauptklasse (mit der main-Methode) ist, dann schon.

Deswegen hat auch der Umweg mit Classpath geholfen. Ohne public hatte die Klasse den modifier package und konnte deswegen nur aus dem Verzeichnis aufgerufen werden.

Hallo etreu,

an das public habe ich als erstes auch gedacht, es aber wieder verworfen, weil es bei mir funktioniert hat (Ubuntu 10.04 und jdk6.1.x) - ohne explizite Angabe von "-cp". Weißt Du, ob das an meiner Umgebung liegt?

Schöne Grüße,

Peter

Vielleicht hast du "." schon im CLASSPATH drin?

Ubuntu funktioniert zwar schön, ist aber nicht immer transparent, wenn man "unten" was machen möchte.

Wie sehen denn deine Umgebungsvariablen aus?

Du hast recht, dass die Anwenderfreundlichkeit bei Ubuntu einher geht mit einer teilweisen Unsichtbarkeit von Einstellungen. Allerdings ist meine Java-Umgebung nicht über einen Paketmanager installiert, sondern manuell. Deshalb habe ich auch keine globale Variable CLASSPATH definiert, für den ersten Test auch keinen cp, den ich der VM mitgegeben hätte. Wenn, dann müsste es an der Implementierung des JDK für Linux liegen (ich habe die .bin installiert).

Naja, hätte mich nur interessiert, aber in meinen Anwendungen ist dieses Phänomen irrelevant, weil ich mit den Modifiern jeweils explizit etwas ausdrücken möchte. Eine Startklasse für eine Anwendung ist meinem Verständnis nach immer öffentlich. ;)

Schöne Grüße,

Peter

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.