标签: jvm-arguments

JVM -XX:+ StringCache参数?

我最近在阅读JRE 6 [ Java VM Options ]中可用的所有JVM参数,并看到了这一点:

-XX:+ StringCache:启用常用分配字符串的缓存.

现在我一直认为Java保留了一个实习池(正确的单词?)字符串,当使用字符串连接时,它不是创建新对象,而是从这个池中提取它们.有没有人曾经使用过这个论点,或者可以解释为什么需要它?

编辑:我试图运行一个基准测试,看看这个参数是否有任何影响,并且无法让Sun JVM识别它.这与:

java version "1.6.0_11"  
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode,
sharing)
Run Code Online (Sandbox Code Playgroud)

所以我不确定这个论点是否有效.

java jvm jvm-hotspot jvm-arguments

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

Java -classpath选项

是否可以使用-classpath选项java,添加或替换CLASSPATHenv变量的内容?

java jvm classpath environment-variables jvm-arguments

19
推荐指数
4
解决办法
5万
查看次数

鼓励JVM加入GC而不是增加堆?

(注意,当我说"JVM"时,我的意思是"Hotspot",我正在运行最新的Java 1.6更新.)

示例情况:

我的JVM在-Xmx设置为1gb的情况下运行.目前,堆已经分配了500mb,其中使用了450mb.该程序需要在堆上加载另外200 MB.目前,堆中有300mb的"可收集"垃圾(我们假设它们都是最老一代的.)

在正常操作下,JVM会将堆增长到700 MB左右,并在它到达时进行垃圾收集.

在这种情况下我想要的是JVM首先gc,然后分配新的东西,这样我们最终的堆大小保持在500mb,而使用的堆在350mb.

是否有JVM参数组合可以做到这一点?

java heap jvm jvm-hotspot jvm-arguments

19
推荐指数
3
解决办法
1万
查看次数

切换到 java 17 后“无法识别的 VM 选项‘CMSClassUnloadingEnabled’”

将 Java 版本更改为 17 后,我无法构建 Gradle 项目。

我正在使用 Gradle 7.3.1 版本,并且 Gradle 属性中有以下行:

org.gradle.jvmargs=-Dfile.encoding=UTF-8 -Xms1g -Xmx4g -XX:+UseG1GC -XX:+CMSClassUnloadingEnabled
Run Code Online (Sandbox Code Playgroud)

然后我得到以下错误

Unrecognized VM option 'CMSClassUnloadingEnabled'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Run Code Online (Sandbox Code Playgroud)

如果我删除-XX:+CMSClassUnloadingEnabled然后我收到此错误:

Unable to make field private int java.lang.reflect.Field.modifiers accessible: module java.base does not "opens java.lang.reflect" to unnamed module @1b9ee3e0
Run Code Online (Sandbox Code Playgroud)

java aspectj jvm-arguments gradle java-17

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

为什么需要指定Java堆大小?

我一直想知道,为什么Java要求你手动设置堆大小?我的印象是,需要为程序运行,直到OS可以分配没有更多的其他语言编写的程序仅分配尽可能多的内存下.

在Java世界中,我们需要设置堆,堆栈和permgen大小.虽然这是很简单的忘记增加这些以"足够大"的数字是排名第一的原因,我已经看到了服务器宕机.

为什么不能告诉Java随着时间的推移增加堆/ stack/permgen?

java jvm jvm-arguments

18
推荐指数
2
解决办法
1223
查看次数

无法在Solaris上初始化类sun.awt.X11GraphicsEnvironment

我在Solaris计算机上运行安装程序时遇到此错误:

Installing...
-------------

 [==================|==================|==================|==================]
 [---Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)

Stack Trace:
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:102)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81)
        at sun.awt.X11FontManager.isHeadless(X11FontManager.java:487)
        at sun.awt.X11FontManager.getFontPath(X11FontManager.java:767)
        at sun.font.SunFontManager.getPlatformFontPath(SunFontManager.java:3288)
        at sun.font.SunFontManager$11.run(SunFontManager.java:3314)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.font.SunFontManager.loadFonts(SunFontManager.java:3310)
        at sun.awt.X11FontManager.loadFonts(X11FontManager.java:439)
        at sun.font.SunFontManager.findFont2D(SunFontManager.java:2347)
        at sun.font.SunFontManager.findFont2D(SunFontManager.java:2285)
        at java.awt.Font.getFont2D(Font.java:498)
        at java.awt.Font.getFamily(Font.java:1187)
        at java.awt.Font.getFamily_NoClientCode(Font.java:1161)
        at java.awt.Font.getFamily(Font.java:1153)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at ZeroGrs.a(DashoA10*..)
        at com.zerog.ia.installer.actions.InstallUninstaller.a(DashoA10*..)
        at com.zerog.ia.installer.actions.InstallUninstaller.d(DashoA10*..)
        at …
Run Code Online (Sandbox Code Playgroud)

java solaris jvm-arguments

18
推荐指数
3
解决办法
7万
查看次数

如何在IDEA中定义默认JVM参数?

是否有在IntelliJ IDEA中定义默认JVM参数的选项?

例如,我想永远激活:

  • -ea -Dslf4j.detectLoggerNameMismatch=true

在Eclipse中,可以在以下位置找到该选项:

  • 首选项 - > Java - >已安装的JRE - >编辑 - >默认的VM参数

java intellij-idea jvm-arguments

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

设置java.awt.headless = true有什么好处?

我经历过

  1. 以编程方式设置java.awt.headless = true
  2. http://www.oracle.com/technetwork/articles/javase/headless-136834.html
  3. 还有其他一些链接.

无处解释使用此标志的好处.

这是性能优势吗?如果是的话,是否会有一个粗略的定义,将会有多少性能优势?(我知道性能问题的答案完全取决于具体情况,但是如果有人报告这样做会带来好处,那就太好了).

java performance jvm jvm-arguments

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

如何在Jenkins全局设置每个作业的JVM选项?

我最近安装了一个新的JDK(1.7u9),我得到了一些非常奇怪VerifyError的东西.在一个帖子中,我发现如果我使用-XX:-UseSplitVerifier魔术开关进行编译,它可以帮助我.

我想要做的是在Jenkins中全局设置这个Java选项,但是没有找到它的任何配置.有人可以帮我解决这个问题吗?

我能够提出的最接近的事情是通过Maven设置参数,但是我必须为每个项目配置执行它 - 我想避免这种情况.

提前致谢.

java configuration jvm-arguments maven jenkins

16
推荐指数
3
解决办法
4万
查看次数

如何使用Gradle添加默认JVM参数

我需要在使用Gradle构建时向我的jar添加默认JVM选项.从我得到的文档中我必须设置:

applicationDefaultJvmArgs = ["-Djavafx.embed.singleThread=true"]
Run Code Online (Sandbox Code Playgroud)

我没有太多使用Gradle的经验,编写build.gradle文件的开发人员写的不同于大多数网站提供的示例.

这是build.gradle:

apply plugin: 'java'
apply plugin: 'eclipse'

version = '0.1'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.+'
    compile 'placeholder'
}

task release(type: Jar) {
    manifest {
        attributes("Implementation-Title": "placeholder",
                "Implementation-Version": version,
                'Main-Class': 'placeholder.Application')
    }
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }

    with jar
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.2.1'
}
Run Code Online (Sandbox Code Playgroud)

我不知道在哪里提出论点.我尝试将它们放在不同的位置,但我总是得到:

A problem occurred evaluating root project 'placeholder'.
> No such property: applicationDefaultJvmArgs for …
Run Code Online (Sandbox Code Playgroud)

java jar jvm-arguments gradle build.gradle

15
推荐指数
1
解决办法
3万
查看次数