2013-10-11 38 views
6

我使用Java和當我試圖寫一個數組到CSV文件中,我遇到了以下錯誤:Java - entityExpansionLimit。我在哪裏設置?

The parser has encountered more than "64,000" entity expansions

我搜索,發現我需要在java命令輸入使用entityExpansionLimit解決這個行:-DentityExpansionLimit=100000

但是,對於Java和這些類型的新東西,我不明白我想在哪裏輸入該命令。我嘗試在命令提示符下輸入,但沒有任何事發生

有人可以指導我嗎?我應該導航到命令提示符下的特定文件夾嗎?

+0

請表明是給這個錯誤代碼傳遞參數運行你的應用程序。你可能會有一些遞歸替代;如果你真的在一行中有64000個擴展,我會感到驚訝。一般而言,您需要顯示導致問題的代碼。請閱讀[FAQ]和[Ask]。 –

+0

他實際上正試圖解決JDK中的一個已知錯誤:https://bugs.openjdk.java.net/browse/JDK-8028111 – mckamey

+0

常見問題。我們之前也打過這個。 –

回答

4

使用選項-D,可以將系統屬性傳遞給jvm(請參閱here)。

例如,如果你運行你的應用程序與

cmd> java -Dfoo=bar MyMainClass 

那麼你可以使用System#getProperty(String key)像這樣在你的應用檢索:

String foo = System.getProperty("foo"); 
System.out.println(foo); // will print bar 

在你情況下您所使用的庫希望在「實體擴展」超過64,000的值時找到名稱爲entityExpansionLimit的系統屬性,但它找不到它,即System.getProperty("entityExpansionLimit")返回null

要通過將JVM是系統屬性

cmd> java -DentityExpansionLimit=100000 -cp <your-class-path> YourMainClass 
+0

作者:「MyMainClass」你在用main()裏面引用我的java文件? – user2741620

+0

@ user2741620是的,包括包名! – A4L

相關問題