Hauptklasse konnte nicht gefunden oder geladen werden

Tiago1234

Mitglied
Hallo,

ich habe versucht meine Java File (ExcelUtils) auszuführen, aber ich bekomme immer wieder die folgende Fehlermeldung:

Fehler: Hauptklasse utils.ExcelUtils konnte nicht gefunden oder geladen werden

Ursache: java.lang.ClassNotFoundException: utils.ExcelUtils

Ich habe mich schon informiert, aber alle Lösungen die vorgeschlagen wurden haben nicht funktioniert. Ich benutze IntelliJ IDEA und habe einen Mac. Es hat anscheinend etwas mit dem Package zutun, aber ich komme auf keine Lösung.

Anbei Screenshots

Screenshots

0_big.png


1_big.png


2_big.png


Vielen Dank für Hilfe im Voraus
 
Also die Bildschirmfotos sind hier sehr klein und sehr schwer lesbar. Aber wenn ich es richtig gesehen habe, dann hast Du den Code in src/test/java und nicht in src/main/java. Das eigentliche Programm gehört aber nach src/main/java. In src/test/java finden sich nur Testklassen, die dann für die sogenannten Unit Tests verwendet werden. Diese gehören aber nicht zum eigentlichen Programm.
 
Danke erstmal für Deine Antwort. Das mit den Bildschirmfotos tut mir leid, ich wusste nicht, dass man die hier nicht vergrößern kann. Ich habe jetzt das Package (utils) in den Java Ordner unter main verschoben. Anbei nochmal ein Screenshot. Es bleibt leider die Fehlermeldung.


Bildschirmfoto 2022-04-08 um 08.55.22.png
 
Also wenn ich s richtig sehe, dann hast Du ein Maven Projekt. Du kannst also as Maven Toolfenster öffnen und da dann unter Lifecycle mal
- clean
- package
nacheinander ausführen.

Danach solltest Du das Programm starten können. Die main Funktion ist aber auf jeden Fall richtig, sonst würde Intellij kein grünes Dreieck dran malen. Daher liegt es vermutlich nur daran, dass er es nicht richtig neu gebaut hat.
 
Du hast ganz rechts am Rand das Toolfenster schon in klein ("Maven").
Oder Du gehst über View -> Tool Windows -> Maven

Edit: Name des Tool Fensters ergänzt
 
Dann bitte einmal ganz genaue Informationen:
- Wie genau startest Du?
- Was genau kommt für eine Meldung?
- Gab es bei der Ausführung von clean oder package irgend welche Fehlermeldungen?
 
Ich habe das Maven Toolfenster geöffnet, dann Lifecycle geöffnet und einen Doppelclick auf clean gemacht.

Dann kam folgendes in der Konsole:
1649411128542.png

Anschließend habe ich einen Doppelclick auf package gemacht. Dann kam folgendes in der Konsole:
1649411143743.png


Dann habe ich das Programm gestartet, indem ich auf den grünen Pfeil geclickt hab. Dieselbe Fehlermeldung kam.
1649411161359.png


Auch wenn ich das Programm mit Rechtsclick auf die Klasse und dann mit run 'ExcelUtils.main() starte, kommt die Fehlermeldung.
1649411175540.png
 

Anhänge

  • Bildschirmfoto 2022-04-08 um 09.27.46.png
    Bildschirmfoto 2022-04-08 um 09.27.46.png
    34 KB · Aufrufe: 8
  • Bildschirmfoto 2022-04-08 um 11.22.48.png
    Bildschirmfoto 2022-04-08 um 11.22.48.png
    62 KB · Aufrufe: 1
  • Bildschirmfoto 2022-04-08 um 11.23.18.png
    Bildschirmfoto 2022-04-08 um 11.23.18.png
    85,2 KB · Aufrufe: 2
  • Bildschirmfoto 2022-04-08 um 11.26.22.png
    Bildschirmfoto 2022-04-08 um 11.26.22.png
    191,1 KB · Aufrufe: 5
  • Bildschirmfoto 2022-04-08 um 11.28.44.png
    Bildschirmfoto 2022-04-08 um 11.28.44.png
    25,9 KB · Aufrufe: 2
  • Bildschirmfoto 2022-04-08 um 11.30.31.png
    Bildschirmfoto 2022-04-08 um 11.30.31.png
    177,3 KB · Aufrufe: 5
Zuletzt bearbeitet:
Also im Augenblick kann ich das Verhalten nicht erklären. Kannst Du das ganze Verzeichnis Sitzplan8-2 einmal in einem ZIP zur Verfügung stellen? Z.B. einfach per Email an konrad@kneitzel.de.

Im Augenblick vermute ich, dass das IntelliJ Projekt irgendwas falsch drin hat. Es könnte also etwas bringen, wenn man in dem Verzeichnis das .idea Verzeichnis und ggf. vorhandene iml Dateien löschen würde um dann das Projekt neu zu öffnen. Aber das ist jetzt ein raten und damit es hier nicht zu sehr hin und her geht wäre das mit dem ZIP File mein Vorschlag.
 
Mich würde interessieren wie die METAINF aussieht
Bzw. da du das über den "grünen pfeil" startest, hat das ja erstmal nichts mit dem build von maven zu tun.
Die Einstellungen der IntelliJ-Konfigurationen wären toll. Darin müsste ja die Hauptklasse angegeben werden
und von welchem "user.dir" verzeichnis aus gestartet wird etc.
 
hast du das ganze mal mit mit java8 ausprobiert zu starten?
Ich hatte mal das problem dass der die Hauptklasse nicht gefunden hatte weil ich eine unvollständige module-info.java hatte
 
Er hat auf den Bildern keine module-info.java und damit hat er ein unnamed module, das alles exportiert und auf alles im Classpath ein requires hat (Einfach ausgedrückt).

Daher wird Java 8 nichts bringen fürchte ich. Da wird auch dieses herum probieren vermutlich nicht viel bringen - bisher habe ich aber kein ZIP bekommen....
 
Ich habe sie aber eigentlich geschickt...
Ich schicke sie nochmal
Ich hatte den Spam Ordner jetzt auch geprüft und da ist nichts ... außer halt, dass ich gleich 2 Mal 4 Mio Pfund bekomme und eine Spende von 1,7 Mio Euro ... Was super ist, da es wohl Probleme mit mehreren Bankkonten gibt ... Da sind die ja zusammen über 10 Mio Euro bestimmt hilfreich 🙂

Die Email Adresse hatte ich noch einmal geprüft und konrad@kneitzel.de hatte ich richtig angegeben so ich mich nicht mehrfach verschaut habe.
 
Entschuldigung, dass ich so viel frage, aber ich hatte so ein Problem einfach noch nie... Wie ändere ich jetzt praktisch die Java Version?
Die Java Version änders du auch dort wo Java11 steht. Ist dort keine andere Java-Version verfügbar musst du das in über strg+shift+umschalt+s
menü eine java version konfigurieren.
Er hat auf den Bildern keine module-info.java und damit hat er ein unnamed module, das alles exportiert und auf alles im Classpath ein requires hat (Einfach ausgedrückt).

Daher wird Java 8 nichts bringen fürchte ich. Da wird auch dieses herum probieren vermutlich nicht viel bringen - bisher habe ich aber kein ZIP bekommen....
Ja ich seh es auch gerade in den Bildern dass da keine ist. Es war jetzt nur eine Vermutung weil ich den Fehler vor ein paar monaten auch mal hatte als ich auf Java11/17 umgestellt hatte.

Aber von den Einstellungen her sah ich jetzt laut den Bildern keine Auffälligkeiten. Der Source-Ordner ist "java" der ja blau dargestellt wird und von dort aus wurde auch die Hauptklasse angegeben wurde.
 
Ich weiß jetzt nicht mehr genau ob Maven genauso wie Gradle separate "Module" erzeugt für "main" und "test"
wenn ja, müsste man noch im classpath bei den Einstellungen das entsprechende Submodul auswählen.
1649420688029.png
Bei Modify options gibt es einen Eintrag "use classpath of module"
 
Ich denke, dass wir dem Problem etwas mehr auf die Spur gekommen sind:
- Es wird ein mac verwendet
- Java fehlt das Recht, auf die Platte zuzugreifen. Das Verzeichnis ~/.mvn kann so z.B. nicht geschrieben werden für z.B. den Wrapper aber wohl auch für das local repository.

Ein erster Lösungsansatz ergibt sich vermutlich über z.B. https://macperformanceguide.com/blog/2020/20200119_1427-macOS-Catalina-add-java-fullDiskAccess.html

Da ich aber keinen aktuellen Mac mehr habe (Mein aktueller Mac ist ein MBA 11" von 2014), werde ich da im Detail nicht mehr weiter helfen können, so dass ggf. ein anderer Entwickler mit mehr Mac KnowHow helfen kann.
 
Nah, Berechtigungen und Gruppenrichtlinien gibt's sogar in der Home-Version (wobei die meisten Kunden Pro einsetzen).

Schlimm ist, wenn die Admins wenig Ahnung haben, was sie da eigentlich alles sperren.
Womit ich immer wieder mal zu kämpfen habe, ist dll Zugriff. Es gibt einen Server, der über einen laufenden Dienst angesprochen wird, der in c# programmiert ist. Damit ich per Java einfach draufkomme, gibt's einen C++ Wrapper, den ich dann per JNA ansteuere.

Jetzt haben wir aber immer wieder - vor allem bei Netzwerkinstallationen, aber hin und wieder auch lokal - das Problem, dass der Wrapper nicht auf den C# Dienst kommt. Die JNA-Kommunikation mit der C++ dll klappt, aber die liefert dann beim Zugriff auf C# nur null-Werte.
Normalerweise liegt der Wrapper im Programmvezeichnis mit allen anderen Bibliotheken, hin und wieder reicht es, ihn in das jre/bin Verzeichnis u kopieren, wo javaw.exe liegt. Aber im Normalfall muss dann der Admin der Firma ran und Berechtigungen für das Java Programm Extra-Berechtigungen setzen.
 
Nah, Berechtigungen und Gruppenrichtlinien gibt's sogar in der Home-Version (wobei die meisten Kunden Pro einsetzen).
Das ist nicht, worauf ich mich bezogen habe. In der Enterprise Edition von Windows 10 gibt es tatsächlich zusätzliche Features, die dann eine Datei der Firma zuordnen. Dies findet sich im Kontextmenü einer Datai als "Dateibesitz". Das hat nichts mit dem Owner der Datei zu tun.

Und auf eine Datei, die geflagt ist als Firmendatei können nur Programme zugreifen, die von der Firma entsprechend vorgesehen wurden, sprich über das Unternehmensportel (Intune?) Installiert wurden. Als Entwickler hat man aber z.B. IDEs, die manuell installiert werden. Im Explorer bekommen so geschützte Dateien dann auch ein zusätliches Overlay: Ein Schloss wird in der Ecke angezeigt.

Wobei ich davon jetzt keine Screenshots machen kann - das scheit bei uns wieder deaktiviert worden zu sein 🙂

Edit: Ich habe es im Netz gefunden: Enterprise Data Protection (EDP): https://docs.microsoft.com/de-de/wi...-protection/protect-enterprise-data-using-wip
 
Heh, hab gerade vorhin wieder Support machen dürfen "Die aktuelle Version kann xy DBs nicht lesen".
Dass beim Start vom Programm eine Sicherheitswarnung kommt und der Kunde alles so eingeschränkt hat, dass man nicht mal per Fernwartung draufkommt, blieb natürlich unerwähnt.
 
du musstest VM Options prüfen
File -> Settings-> Build, Exec.ution, Deployment-> Build Tools-> Maven -> Runners .
bei mir war "mvn clean" as default eingegeben , ich habe es entfernt und danach wurde das Problem gelöst
 

Neue Themen


Zurück
Oben