[Java] file openen vanuit een zet opgezetten package

Pagina: 1
Acties:

  • Neptunus
  • Registratie: Januari 2001
  • Laatst online: 13-11-2025
Ik wil graag vanuit een zet opgezetten packages een file openen. Opzich gaat dit goed zolang ik het hele path opgeef. Dit is niet de bedoeling. Ik wil graag de file's openen vanuit de packages zelf of vanuit de root van het project.

Ik heb geprobeert de file vanuit de package folder te openen met "PACKAGE\\plaatje.jpg"

Verder heb ik geprobeert de file vanuit de root van het project te openen met "plaatje.jpg".

Natuurlijk had ik beide keren even de file geköpeert naar de juiste folders.

Wie kan me opweg helpen. Het is niet zo heel moeilijk maar kon het zelf niet ontdekken wat ik verkeerd doe.

Java:
1
2
3
4
5
6
7
8
9
Image img = null;        
       
try {
        File file = new java.io.File("D:\\code\\bin\\plaatje.jpg");
        System.out.println(file.getPath());
        img = ImageIO.read(file);
     } catch (java.io.IOException e) {
          System.out.println(e);
}

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

code:
1
2
3
4
5
 final private static Icon CLOSED_ICON = new ImageIcon(
            ColumnsTreeNode.class.getClassLoader().getResource(
                    "com/jph/expertSysteem/database/databaseEditor/resources/FolderTree.gif"
            )
    );


Hiermee haal je hem direct uit de jar.

[ Voor 10% gewijzigd door Alarmnummer op 07-06-2005 20:33 ]


  • Neptunus
  • Registratie: Januari 2001
  • Laatst online: 13-11-2025
Alarmnummer schreef op dinsdag 07 juni 2005 @ 20:32:
code:
1
2
3
4
5
 final private static Icon CLOSED_ICON = new ImageIcon(
            ColumnsTreeNode.class.getClassLoader().getResource(
                    "com/jph/expertSysteem/database/databaseEditor/resources/FolderTree.gif"
            )
    );


Hiermee haal je hem direct uit de jar.
Weet je toevallig ook hoe het kan zonder dat ik gebuik maak van een jar.

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 11:51

Robtimus

me Robtimus no like you

Gewoon hetzelfde.
Java:
1
URL icon = JXTV.class.getResource("/Iceman.jpg");
werkt hier zowel met als zonder jar. Toch altijd even controleren of het geen null returned.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Neptunus
  • Registratie: Januari 2001
  • Laatst online: 13-11-2025
IceManX schreef op dinsdag 07 juni 2005 @ 21:48:
Gewoon hetzelfde.
Java:
1
URL icon = JXTV.class.getResource("/Iceman.jpg");
werkt hier zowel met als zonder jar. Toch altijd even controleren of het geen null returned.
Heb het nu tot dus ver voor elkaar, maar ik begrijp nog iets niet. Als ik het path print dan klopt dit als een bus. En als ik het plaatje in de root van het project zet dan klopt het ook allemaal (path is dan natuurlijk "plaatje.jpg"). Het deel wat ik dus niet begrijp is eigenlijk het volgende. Mijn class SimpleFrame is een onderdeel van PACKAGE GUI. Met SimpleFrame.class.getClassLoader().getResource("GUI/plaatje.jpg");

Eigenlijk verwachte ik als path mijn path + op het laatst GUI. Omdat de folder is waar SimpleFrame te vinden is. En niet het path van de root. Waarom is dit?


Java:
1
2
3
4
5
6
7
        URL path = SimpleFrame.class.getClassLoader()
                .getResource("GUI/plaatje.jpg");
        
        System.out.println(path);
        
        //Get Image
        Image image = Toolkit.getDefaultToolkit().getImage(path);

[ Voor 50% gewijzigd door Neptunus op 07-06-2005 23:25 ]


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 11:51

Robtimus

me Robtimus no like you

Het pad dat je opgeeft is relatief tot het rootpad. Als je package GUI heet, dan is het rootpad de directory waarin de GUI directory staat.
plaatje.jpg werkt dan ook alleen maar als het in de rootdirectory staat; staat je plaatje in de directory GUI dan moet je GUI/plaatje.jpg gebruiken.

Het rootpad is nml het pad dat je ook in je classpath moet hebben. Als je een class in package GUI wilt gaan executen ga je ook niet naar directory GUI toe maar naar diens parent directory. Met resources werkt het net zo.

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1