VS Code Project run error

terashy

Mitglied
Hallo, ich kriege jeweils den Fehler java.lang.NoClassDefFoundError:, wenn ich versuche ein Java File in einem VS Code Projekt zu starten.

Ich kann den .java File direkt mit java /home/$USER/ownCloud/java/src/main/java/com/terashy/java/Age2.java ausführen
jedoch in VS Code terminal versucht es zuerst in den Folder zu wechseln und möchte dann den Script ausführen:
cd "/home/$USER/ownCloud/java/src/main/java/com/terashy/java/" && javac Age2.java && java Age2

Wen ich den importieren Zeile package com.terashy.java; lösche, würde es funktionieren, aber das ist wahrscheinlich nicht die Lösung.

Wie richte ich den Code-Runner so ein, dass ich den Script in einem Projekt ausführen kann?

tree
Code:
/home/$USER/ownCloud/java/
├── Age2.class
├── bin
│   ├── default
│   ├── generated-sources
│   │   └── annotations
│   ├── generated-test-sources
│   │   └── annotations
│   ├── main
│   │   ├── application.properties
│   │   ├── com
│   │   │   └── terashy
│   │   │       └── java
│   │   │           ├── Age2.class
│   │   │           └── JavaApplication.class
│   │   ├── graphql
│   │   └── templates
│   └── test
│       └── com
│           └── terashy
│               └── java
│                   └── JavaApplicationTests.class
├── build.gradle
├── compose.yaml
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── HELP.md
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── terashy
    │   │           └── java
    │   │               ├── Age2.class
    │   │               ├── Age2.java
    │   │               └── JavaApplication.java
    │   └── resources
    │       ├── application.properties
    │       ├── graphql
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── com
                └── terashy
                    └── java
                        └── JavaApplicationTests.java
 

KonradN

Super-Moderator
Mitarbeiter
Also als erstes wäre es super, wenn Du uns die ganze Fehlermeldung geben würdest. Du verschweigst uns, welche Klasse nicht gefunden wurde!

Weiterhin wäre es super, wenn Du uns die Klassen zeigen würdest. Hier wäre wichtig, ob die Klassen ein Package haben oder nicht. Von der Verzeichnisstruktur wäre meine Erwartungshaltung, dass die Klassen das Package com.terashy.java haben, aber das ist jetzt geraten.

Die Klassen haben das entsprechende Package. Dann ist der volle Klassenname com.terachy.java.Age2. Du hast Age2 übersetzt aber beim java Aufruf willst Du die Klasse Age2 starten, aber er findet com.terashy.java.Age2 und daher schlägt das Starten fehl. Das was Du da machen solltest:
1. Du wechselst in das Root Verzeichnis der Sourcen, also nur ein: cd "/home/$USER/ownCloud/java/src/main/java/"
2. Beim Übersetzen musst Du jetzt den Pfad richtig angeben: javac com/terashy/java/Age2.java
3. Beim Start gibst Du dann die Klasse richtig an: java com.terashy.java.Age2
 

terashy

Mitglied
Also der Fehler Output ist:
Code:
❯ cd "/home/$USER/ownCloud/java/src/main/java/com/terashy/java/" && javac Age2.java && java Age2
Fehler: Hauptklasse Age2 konnte nicht gefunden oder geladen werden
Ursache: java.lang.NoClassDefFoundError: com/terashy/java/Age2 (wrong name: Age2)
und der Aufbau von Age2.java ist:
Code:
package com.terashy.java;

public class Age2 {
        System.out.println("hello world");
    }
}
Zu dem Punkt 2 und 3 redest du hier von dem Debugger?

Im Code-runner hab ich keine Option etwas einzustellen, ausser im setting unter @ext:formulahendry.code-runner

Und zu dem Debugger habe ich gerade erkannt, dass es funktioniert. Jedoch falls ich im gleichen Folder
z. B. Age3.java herstelle und den Debugger auf Age3.java ausführe, wird trotzdem nur Age2.java eingelesen.
Das wechsel auf Age2 finde nur statt, wen ich VS Code neu starte.
 

KonradN

Super-Moderator
Mitarbeiter
Du hast von Befehlen geschrieben, die Du auf der Console laufen lässt. Du hattest da bisher 3 Befehle, die Du mit && verknüpft hattest.
Und diese 3 Befehle sind anzupassen und das waren meine Punkte 1, 2 und 3.

Und die Fehlermeldung besagt das, was ich beschrieben hatte:
beim java Aufruf willst Du die Klasse Age2 starten, aber er findet com.terashy.java.Age2 und daher schlägt das Starten fehl.

Es ist also wichtig, dass Du bei Java klar unterscheiden kannst:
a) Den Ordner, in dem alle Sourcen liegen.
b) Die Verzeichnisstruktur, die das Package abbilden
c) Den Klassennamen, der in der Regel gleich dem Dateinamen (ohne das .java) ist

Und dann ist das Vorgehen so, dass Du entweder in das Verzeichnis mit den Sourcen wechselst oder Du das Verzeichnis entsprechend angibst (--source-path).

Und bitte verstehe auch: Das hat erst einmal absolut nichts mit einem Debugger, Visual Studio Code oder dem Gradle Projekt zu tun. Das, was wir hier besprechen, funktioniert ebenso ohne all das. Du kannst alles löschen bis auf die Age2.java und dann die entsprechenden Schritte wie beschrieben durchführen.
 

terashy

Mitglied
Ich bedanke mich erst mal, wie es aussieht, muss ich mich erst nochmals mit der Dokumentation befassen.

Die 3 Befehle kamen nicht von mir, die werden mit der Betätigung von "code-runner" generiert.
 

KonradN

Super-Moderator
Mitarbeiter
Also ich kenne mich mit Visual Studio Code nicht aus. Wenn Du mit Gradle Projekten arbeitest, dann solltest Du ein Addon/Plugin nutzen, dass Gradle unterstützt und entsprechend die Verzeichnisstruktur kennt. Bei Gradle ist es üblich, dass der Source code in src/main/java steht und daher sollte das so ausgewertet werden.

Evtl. kannst Du den Ordner java (von src/main/java - nicht den von com/terashy/java!) als Source Ordner markieren. (Evtl. hast Du etwas in der Art gemacht und dabei den falschen "java" Ordner markiert?)
 

terashy

Mitglied
Das Projekt hab ich über das "Spring Boot" Plugin erstellt, der Ablauf ist da eigentlich durch ein Durchklicken eigentlich selbsterklärend. Das Gleiche Fehlverhalten im Terminal hab ich aber auch, wenn ich das populäre "Maven for Java" nutze und in der .java File "package com.usw;" stehen habe.

Ich befürchte, der Fehler liegt irgendwo in meinem Terminal setting.
 

Oneixee5

Top Contributor
Also der Fehler Output ist:
Code:
❯ cd "/home/$USER/ownCloud/java/src/main/java/com/terashy/java/" && javac Age2.java && java Age2
Fehler: Hauptklasse Age2 konnte nicht gefunden oder geladen werden
Ursache: java.lang.NoClassDefFoundError: com/terashy/java/Age2 (wrong name: Age2)
und der Aufbau von Age2.java ist:
Code:
package com.terashy.java;

public class Age2 {
        System.out.println("hello world");
    }
}
Zu dem Punkt 2 und 3 redest du hier von dem Debugger?

Im Code-runner hab ich keine Option etwas einzustellen, ausser im setting unter @ext:formulahendry.code-runner

Und zu dem Debugger habe ich gerade erkannt, dass es funktioniert. Jedoch falls ich im gleichen Folder
z. B. Age3.java herstelle und den Debugger auf Age3.java ausführe, wird trotzdem nur Age2.java eingelesen.
Das wechsel auf Age2 finde nur statt, wen ich VS Code neu starte.

Java:
package com;

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Angenommen, es existiert cd C:/projects und HelloWorld.class ist in C:/projects/com, dann startet man nach javac mit:
java com.HelloWorld

Deshalb komm der NoClassDefFoundError. Dein Aufruf ist falsch ...&& java Age2 müsste ...&& java com.terashy.java.Age2 lauten und natürlich ist dann der Ordner falsch: cd "/home/$USER/ownCloud/java/src/main/java/com/terashy/java/" -> cd "/home/$USER/ownCloud/java/src/main/java/"
Ich vermute du hast den Starter von VSCode mit dem falschen Pfad erstellt und VSCode hat sich diesen falschen Pfad gemerkt.
 

terashy

Mitglied
well, danke euch beiden, ich hab das Problem gefunden.
In VS code gibt es den "Run Code" Befehl, den hab ich auf die Taste F5 gelegt, und dabei immer wieder den Befehl ausgeführt. Das funktioniert so auch bei einem Einzellen .java File der nicht in einem Projekt ist.
Jedoch in einem Java Projekt funktioniert der "Run Java" Befehl

Den hab ich jetzt auch auf die F5 gepackt, mit der Bedienung javaProjectExplorer.active == 'jarExplorer.active' || inDebugMode != 'inDebugMode'

danke nochmals
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Verbesserungsvorschlag für effizienteren Code - (Project Euler10) Java Basics - Anfänger-Themen 26
fLooojava first project - Verbesserungsvorschläge am Code Java Basics - Anfänger-Themen 8
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Connect-4-Code analysieren Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
T Fehlercode bei code der das Alter ausrechnet Java Basics - Anfänger-Themen 2
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
jhfjeh Strukturgramm in code Java Basics - Anfänger-Themen 11
D Tipps zum Code Java Basics - Anfänger-Themen 24
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
W Rückfrage zur Programmgestaltung (clean code) Java Basics - Anfänger-Themen 12
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
K Wie kann man diesen Code schnell und effizient interpretieren (Man hat nur 4 Minuten) Java Basics - Anfänger-Themen 3
R ISBN-10-Code überprüfen Java Basics - Anfänger-Themen 7
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
I HTML Code säubern Java Basics - Anfänger-Themen 4
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
N Java-Code abwärtskompatibel machen Java Basics - Anfänger-Themen 4
J Erste Schritte Was mache ich in meinem Code falsch. Java Basics - Anfänger-Themen 3
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
S Compiler-Fehler Nicht adressierbarer Code ( Non-addressable code ) Java Basics - Anfänger-Themen 5
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
A Code Problem Java Basics - Anfänger-Themen 6
C Fehler im Code Java Basics - Anfänger-Themen 10
A Zu einem bestimmten Ort im Code springen Java Basics - Anfänger-Themen 11
L Ist der Code richtig Java Basics - Anfänger-Themen 3
josfe1234 code vereinfachen Java Basics - Anfänger-Themen 15
nonickatall Ausführbarkeit von Code testen bzw. Remote Debugging Java Basics - Anfänger-Themen 4
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
S Fehler bei Code mit SubStrings für mich nicht auffindbar. Java Basics - Anfänger-Themen 4
G Programm Code Java Basics - Anfänger-Themen 5
C Code zusammenfassen Java Basics - Anfänger-Themen 5
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
T Programmablaufsplaninterpretation in Code umformen Java Basics - Anfänger-Themen 1
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
AlexVo String zu Java Anweisung getString("*** java code ***") Java Basics - Anfänger-Themen 19
M ISBN-Code Java Basics - Anfänger-Themen 26
B Zeitgleiches Arbeiten am Code mit mehreren Personen? Java Basics - Anfänger-Themen 7
S Wie kann ich bei diesem Code erreichen, das als Ergebnis hier 15 herauskommt? Java Basics - Anfänger-Themen 23
N Kann man den Code vereinfachen? Java Basics - Anfänger-Themen 25
marcooooo Code erklären Java Basics - Anfänger-Themen 28
marcooooo Code erklären Java Basics - Anfänger-Themen 4
S Advent of Code Day4 Java Basics - Anfänger-Themen 4
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
Gaudimagspam Caesars Code entziffern in Java Java Basics - Anfänger-Themen 8
Lukasbsc Wie kann ich meinen Code optimieren? Java Basics - Anfänger-Themen 4
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
I Input/Output Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 3
T Main startet nicht bei vorgegebenen Code Java Basics - Anfänger-Themen 41
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
S Mehrere Probleme im Code Java Basics - Anfänger-Themen 7
M Code nur für Cracks? Crack the Passwort Übung Java Basics - Anfänger-Themen 7
parrot Code entferneJedeZweiteZiffer Java Basics - Anfänger-Themen 6
G Code kürzen Java Basics - Anfänger-Themen 5
Bluedaishi Source Code Signieren Java Basics - Anfänger-Themen 22
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6
L Best Practice Code refactern Java Basics - Anfänger-Themen 30
G code kürzen Java Basics - Anfänger-Themen 16
A Code umschreiben Java Basics - Anfänger-Themen 6
Torsten.E JavaFX mit Visual Studio Code verwenden Java Basics - Anfänger-Themen 1
C Beispiel-Code mit Pair wird nicht compiliert. Java Basics - Anfänger-Themen 8
X Reverse algorithm engineering (Java code) Java Basics - Anfänger-Themen 6
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
R Was muss ich an meinem Code ändern? Java Basics - Anfänger-Themen 2
S Bewertet meinen Code - Part 1 Java Basics - Anfänger-Themen 8
M Java Code Verständnis Java Basics - Anfänger-Themen 4
M Java Code Verständnis Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben