(java) imports können nicht auf jars zugreifen

Freizeitprogrammierer

Neues Mitglied
Hallo zusammen, ich nutze windows 11, eclipse 25, java SE 21. So habe ich die jars eingebunden: Ordner "lib" in Java project erzeugt, jars da rein kopiert. Dann Properties -> Build Path ->Libraries -> add jar. Jars erscheinen in Referenced Libraries. Klassen, die auf die jars zugreifen habe ich wie auch die jars selbst aus einer meiner älteren (lauffähigen) Anwendungen (java 8, eclipse kepler) mit copy und paste in das neue project integriert. Nun klappt der import der jar-Klassen nicht mehr z.B. import com.voicerss.tts.VoiceProvider; eclipse weist darauf hin "The type com.voicerss.tts.VoiceProvider is not acessible". Kennt jemand die Lösung dieses Problems?
 
Ab Java 9 hat Java das Konzept von Modulen. Module müssen definieren, worauf sie zugreifen und was sie nach außen geben.

Damit Du auf die Abhängigkeit zugreifen kannst, hast Du zwei Möglichkeiten:
a) Du kannst die Modulbeschreibung bei deinem Code löschen. Dazu einfach die module-info.java in Deinem Source Ordner löschen. Dies sorgt dafür, dass Du ein unnamed module erzeugst. Dieses hat automatisch eine Art "requires" auf alle Module auf dem Classpath.
b) Du kannst die Abhängigkeiten eintragen in der module-info.java. Dazu musst Du aber den module-Name heraus suchen um diesen dann per requires in der module-info Datei einzutragen

Prinzipiell lassen sich so Dinge auch auf der Kommandozeile eintragen. Das kann dann notwendig werden, wenn das require alleine nicht reicht (Ein opens könnte notwendig werden z.B. für "deep reflection").

Die klare Empfehlung ist von mir: Lösche einfach einmal die module-info.java Datei. Dann sollte das Problem weg sein. Dann musst Du Dich erst einmal um die Module nicht kümmern.
 

Zurück
Oben