画像、フォント、メッセージなどのさまざまなフォルダを保持するjarファイルがあります。 フォントフォルダ内のすべてのファイルを読み込む必要があります。jarファイル内のフォルダからファイルを読み取る
現在、私のJavaコードは、jarファイル内のすべてのコンテンツを反復処理しています。次のように私のコードは次のとおりです。
private void loadApplicationSpecificFonts() {
try{
JarFile jarFile = new JarFile("owenstyle-jar-config.jar");
JarEntry entry;
String fontName;
for(Enumeration em = jarFile.entries(); em.hasMoreElements();) {
String s= em.nextElement().toString();
if(s.endsWith("ttf")){
fontName= s.substring(s.lastIndexOf("/")+1);
fontName= fontName.substring(0, fontName.indexOf(".ttf"));
entry = jarFile.getJarEntry(s);
InputStream input = jarFile.getInputStream(entry);
Font font= Font.createFont(Font.TRUETYPE_FONT, input);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
input.close();
}
}
jarFile.close();
}catch (IOException e){
System.err.println("Error: " + e.getMessage());
}catch (FontFormatException e){
System.err.println("Error: " + e.getMessage());
}
}
は、私は、フォントフォルダ(フォント\ congigジャー\設定\資産)のパスを与えるのではなく、瓶の中のすべてのコンテンツを横断することができるように、方法はあります。私は、フォントフォルダのパスが固定されていることを知っているので、jarファイル内のすべてのフォルダにtravesringのオーバーヘッドをかけたくありません。
多分、このコードは機能しますか?入力ストリームinput = jarFile.getInputStream(エントリ); ' –
誰がJarを作ったのですか?それがあなたなら、Jarの既知の場所にインクルードされたファイルのリストを置くことは理にかなっています。例えば。 'fonts/all.list'です。単一のリソースを取得し、それを読んで、フォントエントリ名のリストを取得します。 –
Andrew- jarファイルは私によって作られていません。それはassmebledと送信、私は自分のフォントフォルダ内のフォントファイル内のフォントを読む必要があります – nishMaria