11

私はJavaプロジェクトをビルドするMavenです。ビルドが数回成功した後、次のエラーが発生します。

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

ビルドで使用しているmaven.shファイルに、最初の行として以下を追加しました

export MAVEN_OPTS=-Xmx512m

まだエラーが発生しています。

誰かが修正を提案できますか?

4

10 に答える 10

16

解決策は、maven-surefire-pluginのforkModeを「never」に設定することでした。テストが実行されると、Mavenは確実に新しいJVMを生成するようです。問題が修正されないように設定します。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.7.2</version>
    <configuration>
        **<forkMode>never</forkMode>**
        <argLine>-Xms1024m -Xmx1024m -XX:MaxPermSize=2048m</argLine>
        <systemPropertyVariables>
            <user.name>${user.name}</user.name>
        </systemPropertyVariables>
    </configuration>
</plugin>
于 2012-08-08T14:15:11.237 に答える
12

同じ問題が発生し、Mavenが適切なjvmを使用していないことがわかりました。あなたはこれをチェックすることができます

mvn -version

私の場合、jvmが指定されていて正しくJAVA_HOMEありPATHませんでした。x64jdk7ではなくx86jdk6を使用していました。これを修正すると問題が解決しました。

于 2013-11-28T16:11:26.120 に答える
3

Cloudera Navigator SDKの例を作成しようとしたときに、これと同じ問題が発生しました。32ビットJVMを使用していて、コンパイルは正常に行われたようですが、その後のテストは次のエラーで失敗しました。

Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap

MAVEN_OPTS = -Xmx512mを設定しようとしましたが、効果がありませんでした。同じメッセージで失敗しました。エラーメッセージの2097152KBの値でさえ、同じでした(奇妙です!)。

ヒープサイズの値がpom.xmlファイルのテスト用にハードコードされていることがようやくわかりました。持っていた

<argLine>-Xmx2048m ...
</argline>

pom.xmlを編集し、それを-Xmx1024mに変更すると、mavenはすべてを問題なくビルドおよびテストできました。

したがって、これからの教訓は、他の誰か(Clouderaなど)から提供されたものを構築していて、このようなエラーが発生した場合は、pom.xmlを注意深くチェックして、設定がハードコーディングされているかどうかを確認することです。

参考までに、64ビットJVMを使用してもこれは解決した可能性があると思いますが、64ビットに切り替えることはできません。これを機能させるために必要なものが他にもいくつかあります。これは、32ビットJVMでのみ機能するというものです(ここでは、これ以上詳しく説明することはできません)。

于 2017-05-18T03:19:59.170 に答える
2

私はあなたがあなたの設定であなたが持っているより多くのスペースを予約したいと思います: MAVEN_OPTS=-Xmx512m

Mavenはスペース全体を予約できる場合にのみ起動するため、低く設定してみてください。この問題は私に起こりました、そして私はそれを説明されたように解決することができました。

于 2013-12-05T18:54:44.143 に答える
2

変数を設定してみてください:MAVEN_OPTS = -Xmx512m -XX:MaxPermSize = 128m

于 2014-11-19T12:04:50.670 に答える
2

MAVEN_OPTS = -Xmx512mに変更すると、Windows64ビットで役立ちました。

于 2015-05-04T08:32:13.113 に答える
1

Java 64ビットを試して、java_homeをこのJava64に構成します。obs.:javac-versionおよびmvn-versionは、このJava64を返す必要があります。

于 2015-07-27T16:02:35.733 に答える
0

上記のディディエLが言ったように

これはまさに私が抱えていた問題でした。64ビットの代わりにx86JVMを実行していました...

64ビットJVMに変更したときの問題が修正されました。

于 2013-12-28T06:35:33.310 に答える
0

IDEA IntelliJ IDEにはMaven -> Runner、特定のJVMを使用するための設定があります。私のデフォルトは、JAVA_HOMEに設定されたJDKではなくJREを使用することでした。必ずその設定を確認してください。JAVA_HOMEを使用するように切り替えると、すべてが正常に実行されました。

于 2014-01-28T21:57:17.030 に答える
0

私はこれとその作品を試してみました-

Mavenバージョン-3.2.5Javaバージョン-jdk1.7.0_10

-Xmx600m -XX:PermSize = 256m

于 2015-05-18T13:37:30.457 に答える