2

tifファイルからメタデータを抽出するときに上記のような問題があります。サイズは450MBを超えています。最新バージョン(0.97)のhttp://commons.apache.org/sanselan/ライブラリを使用して抽出していました。コードを実行すると:


String xmpMeta = null;
try {
    xmpMeta = Sanselan.getXmpXml(file);
} catch ...

、次のスタックトレースを取得します。


Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at org.apache.sanselan.common.byteSources.ByteSourceInputStream.readBlock(ByteSourceInputStream.java:65)
        at org.apache.sanselan.common.byteSources.ByteSourceInputStream.access$000(ByteSourceInputStream.java:24)
        at org.apache.sanselan.common.byteSources.ByteSourceInputStream$CacheBlock.getNext(ByteSourceInputStream.java:54)
        at org.apache.sanselan.common.byteSources.ByteSourceInputStream$CacheReadingInputStream.read(ByteSourceInputStream.java:147)
...

vmのXmsおよびXmxプロパティを増やしていて、それも失敗したことを認める必要がありますが、最終的には、より重い画像を解析できるため、このプロパティを増やすことに興味がありません。この問題のヘルプ、またはJPEG/Tifファイルからxmpメタデータを解析するために別のライブラリを参照していただければ幸いです。

4

1 に答える 1

0

呼び出すことで、より多くのヒープスペースでJavaを呼び出すことができます

java -Xmx512M FooProgramm

これにより、512M のヒープ領域で Java が実行されます。これが良い解決策ではないことはわかっています。

たぶん、この例から何かを試すことができます:

http://www.example-code.com/java/java-xmp-extract.asp

于 2011-12-22T12:21:46.807 に答える