2013-10-11 23 views
6

私はJavaを使用していると私は、CSVファイルに配列を書き込みしようとすると、私は次のエラーが発生しました:Java - entityExpansionLimit。どこでこれを設定しますか?

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

私はjavaコマンドを入力してこれを解決するためにentityExpansionLimitを使用する必要があることを検索し、見つかりました行:-DentityExpansionLimit=100000

しかし、Javaには新しく、これらの種類のものは、私はそのコマンドをどこに入力するか分からない。私はコマンドプロンプトでそれを打つことを試みたが、何も起こらなかった

私を導くことができる人はいますか?コマンドプロンプトで特定のフォルダに移動するはずですか?

+0

このエラーを与えているコードを表示してくださいJVMを渡すことによって、あなたのアプリケーションを実行し、その引数を渡します。いくつかの再帰的置換が行われている可能性があります。私はあなたが本当に1行に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を超えても見つからない場合、つまりSystem.getProperty("entityExpansionLimit")nullを返した場合、名前がentityExpansionLimitのシステムプロパティが見つかることを期待しています。

は、システムプロパティは

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

"MyMainClass"によってmain()内部のjavaファイルを参照していますか? – user2741620

+0

@ user2741620はい、パッケージ名を含む! – A4L

関連する問題