Problem beim Verschieben der main-class -> A jni error has occured, please check...

Hein_nieH

Bekanntes Mitglied
Hallo,

ich habe ein Problem, bei dem mir google auch nicht so recht weiterhelfen kann. 😳

Ich habe in eclipse ein maven-Projekt, welches sich auch bauen lässt, solange die main-Klasse im Ordner src befindet.
(in Eclipse angezeigt als src->(default-package) )

Wenn ich die Klasse jedoch via Refactoring-Funktion in ein anderes package verschiebe, dann erhalte ich den o.g. Fehler:
A jni error has occured, please check your installation
Wenn ich das Projekt in Eclipse als Java-Application starte erschein der Fehler

Im Konsolenfenster erscheint dann zusätzlich
exception in thread "main" java.lang.SecurityException: Prohibited package name: java.mydefault
at java.base/java.lang.ClassLoader.preDefineClass(ClassLoader.java:899)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1015)

Ich habe auch schon an der pom.xml herumexperimentiert, aber ohne erfolg.
Kennt jemand den Fehler und kann mir einen Tip geben, wie dieser Fehler zu korrigieren ist?

Gruss Hein_nieH
 
Wenn ich die Klasse jedoch via Refactoring-Funktion in ein anderes package verschiebe [...]
In welches Package denn genau?

Prohibited package name: java.mydefault
Ich vermute mal, dass dein Package "java.mydefault" heisst. Das ist leider nicht gestattet, da nur das JRE selbst (über den Bootstrap-Classloader) Klassen aus dem Package `java.*` laden darf. Du kannst also ein Package nicht `java.*` nennen.
 
Hallo,

ich habe mir ein package + subpackage java.mypackage unter src angelegt. Dorthin habe ich die Main-Klasse (die Klasse enthält nur die Funktion main) reingeschoben.
httpdigetst hat recht, wenn ich das package anders nenne funktioniert es.
Mein Ziel war eigentlich von einem früheren Projekt die Ordnerstruktur wie in Maven aufzubauen.

Wenn ich das richtig verstehe darf das package nicht java heissen oder????

Gruss Hein_nieH
 
Zuletzt bearbeitet:
Kannst Du uns das evtl. einmal als Bildschirmfoto zeigen, was Du da genau hast? Und dann sehen wir auch die genaue Fehlermeldung noch einmal...

Oder den genauen Aufbau incl. der exakten Fehlermeldung. Vielleicht das Projekt auch einfach einmal als ZIP anhängen, das nicht geht.
 
Hallo,

der Tipp war gut.
Die Main-Klasse lag unter src.java.mydefault

Wenn ich unter das von mir angelegt package "java" umbenenne dann funktioniert es, z.B. src.xyz.mydefault.

Ich bin nur stutzig geworden, da im Buch "Konfigurationsmanagement mit Subversion, Maven und Redmine ", Autor Gunther Popp,
ein Fallbeispiel demonstriert wird, in dem unter src das package java liegt, also src.java.xxxxx

Gruss Hein_nieH
 
"java" ist nicht das Package, sondern im Gradle/Maven Defaultsetup ist <projectroot>/src/main/java das Source-Verzeichnis, unter welchem dann die Packages und Java-Klassen liegen.
Wenn du also ein Package "mydefault" hast, und darin eine Java-Datei Main.java, dann läge diese unter:
<projectroot>/src/main/java/mydefault/Main.java
 
Hallo httpdigest,

Ja mit dem Standard path in maven hast du recht.
Ich frage mich nur wie der Autor in seinem Fallbeispiel das package "java" direkt unter "src" gepackt hat.
Ich habe das Beispiel selbst nicht ausprobiert, sondern auf das vertraut was im Buch stand. Dem Autor halte ich für sehr kompetent.
Daher war mein ursprünglicher Versuch beim Refactoring meines Altprojektes das ein package "java" auch unter "src" zu packen.
Und genau dann kam der Fehler auch wenn ich unter dem package "java" ein weiteres subpackage angelegt habe in welchem dann die Main-Klasse enthalten war.
Zumindestens ist mir damit geholfen, dass ich kein package "java" direkt unter "src" anlegen darf.

Gruss Hein_nieH
 
Hallo httpdigest,

Ja mit dem Standard path in maven hast du recht.
Ich frage mich nur wie der Autor in seinem Fallbeispiel das package "java" direkt unter "src" gepackt hat.
Ich habe das Beispiel selbst nicht ausprobiert, sondern auf das vertraut was im Buch stand. Dem Autor halte ich für sehr kompetent.
Daher war mein ursprünglicher Versuch beim Refactoring meines Altprojektes das ein package "java" auch unter "src" zu packen.
Und genau dann kam der Fehler auch wenn ich unter dem package "java" ein weiteres subpackage angelegt habe in welchem dann die Main-Klasse enthalten war.
Zumindestens ist mir damit geholfen, dass ich kein package "java" direkt unter "src" anlegen darf.

Gruss Hein_nieH
Der Autor hat mit ziemlicher Sicherheit nicht das Package java unter src gepackt, sondern einen Folder java unter src angelegt.

Die Package-Struktur beginnt erst später, unterhalb des Folders java
 

Zurück
Oben