Java relative path geht nicht?
hi ich möchte einen relative path anlegen
jedoch kann dann die Datei nicht angezeigt werden bzw ich bekomme den Fehler das keine Datei vorhanden ist
ich benutze IntelliJ da kann man auch den relativen path kopieren
2 Antworten
Packe deine Datei in den resources-Ordner (src/main/resources) und lade sie dann mittels ClassLoader.
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("path your file");
Der Pfad zur Datei darf nicht mit einem Slash beginnen. Er startet relativ zum Ressourcen-Ordner.
Für Weiteres lies hier:
Das hier ist nicht das richtige Forum für solch eine Frage. Geeigneter dafür ist http://stackoverflow.com/.
Wenn du eine Datei mit relativem Pfad ansprichst, dann bezieht sich das immer auf den Ausführungsort deines Programms. Wenn dein relativer Pfad "./meinverz/meine.datei" ist und sich dein Programm in "/home/meinbenutzer/Desktop/" befindet, dann muss sich auch eine Datei am Zielort "/home/meinbenutzer/Desktop/meinverz/meine.datei" befinden, sonst bekommst du Fehler.
Vorsicht, wenn du dein Programm nicht direkt, sondern über eine IDE (in deinem Fall IntelliJ) ausführst, dann ist dein Ausführungsort nicht da, wo sich dein Programm (deine JAR-Datei) befindet, sondern in irgendeinem Verzeichnis von IntelliJ.
es findet den relativen path nicht I/O Error when copying filejava.nio.file.NoSuchFileException: EFIs/NoWindows/Intel Core i3_i5_i7_i9 (6th_7th_8th_9th)/Gigabyte z390 DESIGNARE/AMD Radeon VII (VEGA 20)/EFI.zip
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
at java.base/sun.nio.fs.UnixCopyFile.copy(UnixCopyFile.java:548)
at java.base/sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:258)
at java.base/java.nio.file.Files.copy(Files.java:1298)
at com.GK.MainGUI$1.actionPerformed(MainGUI.java:99)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6636)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6401)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5012)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2762)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4844)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
klappt
danke