Hente billeder og andre filer fra JAR-fil i Java-kode
Jeg har et Java projekt, som jeg bygger til en JAR-fil, ved brug af ANT.Jeg har lavet et target 'package', hvor jeg efter at have kompileret koden samler min JAR-fil. Dette target ser ud som følger:
<target name="package" depends="compile">
<jar jarfile="${dist}/result.jar" basedir="${build}">
<fileset dir="./src">
<include name="**/*.ttf"/>
<include name="**/*.gif"/>
</fileset>
</jar>
</target>
I min projekt bruger jeg nogle skrifttyper og nogle billeder (GIF). ANT pakker fint nok disse filer og ligger dem i roden af min JAR-fil. Når jeg kører en klasse har den dog problemer med at hente disse ressourcer.
I min Java -kode bruger jeg eksempelvis følgende to linjer, når TTF-filen ligger i roden af projektet:
File file = new File("candara.ttf");
font = Font.createFont(Font.TRUETYPE_FONT, new FileInputStream(file));
Jeg har søgt om andre skulle have samme problem og fandt en løsning alá:
InputStream in = Layout.class.getResourceAsStream("candara.ttf");
font = Font.createFont(Font.TRUETYPE_FONT, in);
in.close();
hvor Layout er klassen, hvorfra koden kaldes - det virker dog heller ikke.