相关疑难解决方法(0)

打印所有JVM标志

找到一个有趣的JVM标志:

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
Run Code Online (Sandbox Code Playgroud)

它打印了数百种不同的选项,我以前从未听说过.它还会打印默认值,这有助于更好地诊断JVM行为.另一个有趣的标志是:

-XX:+UnlockExperimentalVMOptions
Run Code Online (Sandbox Code Playgroud)

有谁知道任何解释其中每一个的文件?

java printing optimization flags jvm

88
推荐指数
2
解决办法
5万
查看次数

我如何知道为Sun JVM启用了哪些默认设置?

我想在我的JVM上尝试CompressedOops.不,我想知道它是否可以默认启用.我在debian/squeeze上运行这个jvm:

$ java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)
Run Code Online (Sandbox Code Playgroud)

有人说它默认启用,有人说它不是:

来自:http://forums.yourkit.com/viewtopic.php?f = 3&t = 3185

是的,你是对的,我也检查了它,并且在646位Java6u21中默认没有激活Compressed Oops,我不明白为什么它在我提供的链接中这么说.

我尝试用jconsole/JMX检查它,但没有运气找到名为CompressedOops或类似的属性.

有没有人知道我在哪里获得具有默认值的特定构建的所有jvm选项的列表?

关于Janning

java jvm jvm-hotspot

29
推荐指数
1
解决办法
2万
查看次数

Maven surefire:附加到argLine

我有2个配置文件可能会或可能不会一起用于运行一组测试.它们每个都需要不同的vmarg来运行,但如果它们一起使用,可以将它们相互附加.

我正在寻找的是一种将argLine设置为其当前值加上我设置的串联的方法.

我希望它会如此简单

<argLine>${argLine} -DnewVMArg</argLine>
Run Code Online (Sandbox Code Playgroud)

我能做些类似的事情来实现这一目标吗?

我试图修复它,导致maven陷入递归循环.它记录在下面.

我最近的尝试是<my.argLines></my.argLines>全局定义属性,然后在配置文件中修改它.

在每个配置文件中,在属性块中,我将属性覆盖为:

<my.argLines>${my.argLines} -myUniqueToProfileArgs</my.argLines>
Run Code Online (Sandbox Code Playgroud)

在配置文件的每个surefire配置中,我设置<argLines>为:

<argLines>${my.argLines}</argLines>
Run Code Online (Sandbox Code Playgroud)

这在逻辑上适合我,但它评估的方式显然不会啮合.

maven-3 maven maven-surefire-plugin

14
推荐指数
2
解决办法
2万
查看次数

如何打印正在使用的MAVEN_OPTIONS?

有没有办法让maven在构建期间输出环境和maven变量的值?这对于在出错时进行调试非常有用.

environment-variables maven

9
推荐指数
2
解决办法
1万
查看次数

如何在 maven-compiler-plugin 中设置 -XX:PermSize=64m?

我无法使用 maven-compiler-plugin (v3.2) 设置 permsize 或 maxpermsize。

我是这样试的:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>      
<configuration>
    <meminitial>1024m</meminitial>
    <maxmem>2024m</maxmem>  
    <compilerArgument>-XX:PermSize=128m</compilerArgument>  
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

这导致错误

Caused by: org.codehaus.plexus.compiler.CompilerException: invalid flag: -XX:MaxPermSize=256m -XX:PermSize=128m
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:191)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:169)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:785)
    ... 22 more
Caused by: java.lang.IllegalArgumentException: invalid flag: -XX:MaxPermSize=256m -XX:PermSize=128m
    at com.sun.tools.javac.api.JavacTool.processOptions(JavacTool.java:231)
    at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:199)
    at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:115)
    ... 24 more
Run Code Online (Sandbox Code Playgroud)

我的另一个尝试是在示例http://maven.apache.org/plugins/maven-compiler-plugin/examples/pass-compiler-arguments.html 中添加它

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>      
<configuration>
    <meminitial>1024m</meminitial>
    <maxmem>2024m</maxmem>  
    <compilerArguments>
        <Xms>128m</Xms>
        <Xmx>1024m</Xmx>                        
        <XX:MaxPermSize>256m</XX:MaxPermSize>
        <XX:PermSize>128m</XX:PermSize>                                              
    </compilerArguments>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

导致同样的错误:

Caused by: org.codehaus.plexus.compiler.CompilerException: invalid flag: -XX:MaxPermSize
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:191)
    at …
Run Code Online (Sandbox Code Playgroud)

java maven maven-compiler-plugin

4
推荐指数
1
解决办法
3981
查看次数