0

私は基本的に、Apache poiを使用して、あるExcelファイルから別のExcelファイルにレコードをフィルタリングするプログラムを持っています。私のプログラムは、netbeans を使用して実行すると正常に実行されます。ただし、distフォルダー内の.jarファイルをクリーンアンドビルドしてダブルクリックすると、非常に長い間(長すぎます!)実行され、次のエラーが表示されます(コマンドプロンプトからプログラムを実行すると発生します)。

回避策はありますか?クリーニングとビルドの前に、netbeans 内でヒープ サイズを -Xms1500m に増やしました。

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
    at org.apache.xmlbeans.impl.store.Saver$TextSaver.resize(Saver.java:1592)
    at org.apache.xmlbeans.impl.store.Saver$TextSaver.preEmit(Saver.java:1223)
    at org.apache.xmlbeans.impl.store.Saver$TextSaver.emit(Saver.java:1144)
    at org.apache.xmlbeans.impl.store.Saver$TextSaver.emitElement(Saver.java:926)
    at org.apache.xmlbeans.impl.store.Saver.processElement(Saver.java:456)
    at org.apache.xmlbeans.impl.store.Saver.process(Saver.java:307)
    at org.apache.xmlbeans.impl.store.Saver$TextSaver.saveToString(Saver.java:1727)
    at org.apache.xmlbeans.impl.store.Cursor._xmlText(Cursor.java:546)
    at org.apache.xmlbeans.impl.store.Cursor.xmlText(Cursor.java:2436)
    at org.apache.xmlbeans.impl.values.XmlObjectBase.xmlText(XmlObjectBase.java:1455)
    at org.apache.poi.xssf.model.SharedStringsTable.getKey(SharedStringsTable.java:130)
    at 

org.apache.poi.xssf.model.SharedStringsTable.addEntry(SharedStringsTable.java:176)
    at org.apache.poi.xssf.usermodel.XSSFCell.setCellType(XSSFCell.java:755)

    at equity.EquityFrame_Updated.copyRowsFromOldToNew(EquityFrame_Updated.java:646)
    at equity.EquityFrame_Updated.init(EquityFrame_Updated.java:133)
    at equity.EquityFrame_Updated.createAndShowGUI(EquityFrame_Updated.java:71)
    at equity.EquityFrame_Updated.<init>(EquityFrame_Updated.java:50)
    at equity.FileOpener.generateButtonPressed(FileOpener.java:160)
    at equity.FileOpener.access$100(FileOpener.java:17)
    at equity.FileOpener$2.actionPerformed(FileOpener.java:61)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
4

1 に答える 1

2

'-Xms1500m'フラグは実行時フラグであり、コンパイル時フラグではありません。Netbeans内に設定したので、Netbeansを実行したときにのみそのフラグを取得します。

Netbeansの外部でプログラムを実行する場合は、次のように実行する必要があります。

java -Xms1500m-jar[ここにあなたのプログラム]。

于 2012-06-26T03:11:28.420 に答える