Kompilierte Klasse mit Namespace per CMD aufrufen

J

Jürgen

Mitglied
Hallo,

ich bin gerade dabei wieder mit Java etwas "rumzuspielen". Ich habe ein erstes Progrämmchen geschrieben, dass auf meinem Server zwei Ordner rekursiv vergleicht und mir das Delta zwischen beiden Ordnern per system.out.println ausgibt. Das funktioniert auch, allerdings nur aus meiner IDE heraus.

Wenn ich die Klasse im Ordner "src" mit dem Namespace org.example.folderdiff.FolderDiff.java kompiliere landet die .class Datei in einem out-Ordner. Allerdings habe ich keinen Schimmer, mit welchem Befehl ich diese dann ausführen kann. Navigiere ich in der CMD in den out\production\org\example\folderdiff-Ordner und rufe

java FolderDiff

auf kommt die Meldung

Error: Could not find or load main class FolderDiff.class

Allerdings liegt diese in genau dem Ordner. Wenn ich eine Klasse ohne Namespace direkt in das Projekt lege, dann kann ich sie auf die Art auch aufrufen. Ich würde aber gerne gleich "richtig" anfangen und mit Namespace rumspielen. Besonders jetzt, wo ich es nicht hinbekommen interessiert mich, warum.

Könnt ihr mir da bitte weiterhelfen?

Vielen Dank und viele Grüße

Jürgen
 
H

httpdigest

Top Contributor
Gehe in den Ordner out\production und rufe auf: `java org.example.folderdiff.FolderDiff `
 
J

Jürgen

Mitglied
Hallo,

das hat leider nicht funktioniert. Ich habe auch etwas weiter gegoogled und ein Video auf YouTube gesehen, in dem auch der main class-Fehler auftritt. Dort hat der Entwickler über set class den bin-Ordner seines JDK gesetzt und über set classpath die rt.jar im lib-Ordner des JRE.

Danach habe ich erneut kompiliert über die Konsole und es ging trotzdem nicht.

Meine Klasse sieht wie folgt aus:

Code:
package org.example.folderdiff;

import java.io.File;

public class FolderDiff {
    public static void main(String[] args) {
        final File folder1 = new File("C:\\myFolder\\");
        final File folder2 = new File("C:\\myFolder2\\");
        FolderDiff.listFilesForFolder(folder, folder2);
    }

    public static void listFilesForFolder(final File folder, final File folder2) {
...
    }
}

So sieht meine Projektstruktur aus:
structure.png

Und so habe ich den Code von der CMD aus versucht aufzurufen:

e:\Java\FolderDiff\out\production\FolderDiff>java org.example.folderdiff.FolderDiff

Folgendes sagt java -version

Picked up _JAVA_OPTIONS: -Xmx1024M
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) Client VM (build 25.151-b12, mixed mode)

Hat noch jemand eine Idee, was ich falsch mache? Gerne kann ich auch weitere Infos posten.

Vielen Dank und viele Grüße

Jürgen
 
H

httpdigest

Top Contributor
Dann hast du vermutlich irgendwo eine CLASSPATH Umgebungsvariable gesetzt/verändert. Probiere es mal innerhalb des `out\production\FolderDiff` mit `java -cp . org.example.folderdiff.FolderDiff`
 
J

Jürgen

Mitglied
Guten Morgen httpdigest,

vielen Dank für deine Antwort. Das Java-Projekt habe ich frisch aufgesetzt. Änderungen am Classpath habe ich bewusst nirgends vorgenommen, außer diese "set classpath" und "set class"-Geschichten auf der CMD.

Der von dir genannte Befehl führt leider zu folgendem Fehler:

e:\Java\FolderDiff\out\production\FolderDiff>java -cp . org.examle.folderdiff.FolderDiff
Picked up _JAVA_OPTIONS: -Xmx1024M
Error: Could not find or load main class org.examle.folderdiff.FolderDiff

Ich teste das ja aktuell alles lokal auf meinem Windows-Rechner. Zum Einsatz soll es aber auf meinem Linux-Server (mit OpenMediaVault OS) kommen, deshalb ist es auch wichtig, dass ich es außerhalb der IDE laufen lassen kann. Soll ich die unkompilierten Dateien einfach mal auf den Server kopieren und dort per javac kompilieren? Könnte das funktionieren, oder steht die falsche Info irgendwo in den mitkopierten Dateien und gar nicht irgendwo in Windows?

Vielen Dank und viele Grüße

Jürgen
 
K

kneitzel

Gast
Schau mal bitte, wo genau die Datei FolderDiff.class liegt.

Liegt diese in e:\Java\FolderDiff\out\production\FolderDiff\org\example\folderdiff\?

Dem Bildschirmfoto entnehme ich ja ein e:\htdocs\java\FolderDiff\out\production\FolderDiff\org\example\folderdiff\

Daher solltest Du den Aufruf auch in e:\htdocs\java\FolderDiff\out\production\FolderDiff\ machen.
(Wobei ich mich frage, ob Du die Entwicklung wirklich in einem Pfad machst, der von einem Webbrowser angezeigt wird. Das ist eigentlich eher unüblich....)
 
J

Jürgen

Mitglied
Hallo kneitzel,

sorry für das Mißverständnis. Ich hatte das Projekt nach E:\Java\FolderDiff\out\production\FolderDiff\org\example\folderdiff verschoben bzw. neu angelegt und den Inhalt der FolderDiff.java-Datei in dieselbe Datei im neuen Verzeichnis kopiert. Unter E:\htdocs liegt nichts mehr, das nichts mit dem Webserver zu tun hat.

Das lag nur aus "Gewohnheit" darin, da ich einfach ein neues Projekt anfänglich angelegt und es in derselben Strutkur abgelegt habe, wie alle anderen Projekte - das waren tatsächlich Web-Porjekte - auch.

Viele Grüße

Jürgen
 
K

kneitzel

Gast
Also liegt die Datei FolderDiff.class unter e:\Java\FolderDiff\out\production\FolderDiff\org\example\folderdiff\?

Und bei dem, was Du gepostet hast:
java -cp . org.examle.folderdiff.FolderDiff
==> Tippfehler: example muss das heissen.

Also wenn die .class Datei so vorhanden ist, dann sollte der Aufruf auch funktionieren - so man alles richtig schreibt ...
 
J

Jürgen

Mitglied
Hallo kneitzel,

vielen Dank für deine Antwort.

Ja, die Klasse liegt in dem Ordner. Wo du definitiv Recht hast ist der Tippfehler! Oh man. Wenn der behoben ist, dann funktioniert es auch... Peinlich.

Vielen Dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Kompilierte Datei nimmt Ändernungen nicht an Java Basics - Anfänger-Themen 2
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 1
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
A Klasse Menge mit Objekten der Klasse Person Java Basics - Anfänger-Themen 8
C Meldung einer Klasse nach "oben" Java Basics - Anfänger-Themen 6
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
J Scanner-Klasse Java Basics - Anfänger-Themen 2
itsmejo Erste Schritte Auf Attribut einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 14
P NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap trotz vorhandener Klasse? Java Basics - Anfänger-Themen 10
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
M Java Klasse Object Java Basics - Anfänger-Themen 5
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
B Klassen Abstrake Klasse und Template Methode Java Basics - Anfänger-Themen 4
S ArrayList in andere Klasse übernhemen Java Basics - Anfänger-Themen 5
B Erste Schritte Guice Injection nicht in jeder Klasse möglich Java Basics - Anfänger-Themen 2
Y Java andere Klasse aufrufen Java Basics - Anfänger-Themen 6
B Objektverwaltung mit ArrayList in einer seperaten Klasse Java Basics - Anfänger-Themen 24
G unklares Verhalten nach Instanzierung neuer Klasse Java Basics - Anfänger-Themen 3
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
S Eigene LinkedList Klasse Java Basics - Anfänger-Themen 4
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
R Methode zwei Sortierkriterien der Klasse Comparator übergeben Java Basics - Anfänger-Themen 4
I Klasse selbst fortlaufend nummerieren lassen Java Basics - Anfänger-Themen 11
J Combobox füllen mit Wertausgabe von andere Klasse Java Basics - Anfänger-Themen 3
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
bensdt Klasse erweitern um eine Methode "void decrement()" Java Basics - Anfänger-Themen 5
Y Wie rufe ich die Klasse auf? Java Basics - Anfänger-Themen 6
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
S Methode von vererbter Klasse, statt die der "Mutterklasse" aufrufen Java Basics - Anfänger-Themen 28
N Klassen Warum kann meine Klasse nicht auf Methoden der anderen Klasse zugreifen? Java Basics - Anfänger-Themen 6
N Was macht die Klasse? Java Basics - Anfänger-Themen 3
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
V_Fynn03 Kontostand anzeigen lassen von einer anderen Klasse Java Basics - Anfänger-Themen 3
X Auf Attribut einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 2
D ObjektStrom mit Klasse Widget Java Basics - Anfänger-Themen 15
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
D OOP- Eine Klasse in mehrere Klassen aufteilen Java Basics - Anfänger-Themen 7
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
S Methode in der Klasse erstellen Java Basics - Anfänger-Themen 2
S Frage Klasse und Objekte Java Basics - Anfänger-Themen 2
E Methode soll andere Methode der selben Klasse aufrufen Java Basics - Anfänger-Themen 28
S Instanzvariablen vom Typ einer Klasse definieren Java Basics - Anfänger-Themen 12
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
B Attribut vom Typ einer Klasse? Java Basics - Anfänger-Themen 3
M Klasse erbt von Interfaces Java Basics - Anfänger-Themen 6
M Objekt einer Klasse speichert die Veränderung nicht Java Basics - Anfänger-Themen 1
K Klassen Klasse erstellen, die Punkte eines Koordinatensystems repräsentiert? Java Basics - Anfänger-Themen 3
K Boolean in einer erstellten Klasse verwenden Java Basics - Anfänger-Themen 14
T KLasse das bessere Array Java Basics - Anfänger-Themen 16
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
J Kann man files in einer Klasse speichern. Java Basics - Anfänger-Themen 2
D Generische Klasse Java Basics - Anfänger-Themen 6
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
W Zwei Programme sollen auf eine Klasse zugreifen Java Basics - Anfänger-Themen 18
L Klassen Wie “installiert” man eine Klasse? Java Basics - Anfänger-Themen 2
B Klasse Tier Java Basics - Anfänger-Themen 2
E Eigenschaften Werte, in einer anderen Klasse, zuweisen Java Basics - Anfänger-Themen 40
M Klassen Klasse aus anderer Klasse "aufrufen" Java Basics - Anfänger-Themen 2
O Anonyme Klasse einer Liste erstellen Java Basics - Anfänger-Themen 7
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
J Erste Schritte if Abfrage von JButton in 2. Klasse Java Basics - Anfänger-Themen 27
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
R Weitergabe von Arrays aus Methoden in andere Klasse Java Basics - Anfänger-Themen 5
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
M JTable an andere Klasse übergeben Java Basics - Anfänger-Themen 2
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
K Klasse mit einer Array-Eigenschaft Java Basics - Anfänger-Themen 4
H Eine befühlte Klasse weiter geben an Controller Java Basics - Anfänger-Themen 12
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
O Scanner Klasse Java Basics - Anfänger-Themen 8
E Klassen Auto Klasse Java Basics - Anfänger-Themen 6
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
I Eigenschaften von Position aus anderer Klasse übernehmen Java Basics - Anfänger-Themen 17
I Instanz einer anderen Klasse zurückgeben Java Basics - Anfänger-Themen 34
F Auf Array einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
S getter, setter in abstrakter Klasse oder lieber Unterklassen Java Basics - Anfänger-Themen 4
J In einer Klasse ein AlertDialog einfügen Java Basics - Anfänger-Themen 4
UnknownInnocent Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
L Neue Klasse für TableView? Java Basics - Anfänger-Themen 17
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Anzeige

Neue Themen


Oben