标签: jvm-arguments

JVM选项列表 - 仍在Oracle之后维护?

JVM选项列表是否仍在任何地方维护?它似乎从甲骨文的网站上消失了,但幸运的是Wayback Machine有一个副本.

jvm jvm-arguments

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

如何以编程方式设置-Dorg.apache.el.parser.COERCE_TO_ZERO = false

这个问题类似于:

jsf:绑定到UI中的inputtext的整数属性在提交时设置为零

但我对解决方案并不完全满意.上下文是相同的:我有一个需要Integer值的Web表单.如果文本框留空,我希望我的整数字段为'null',而EL解析器会自动将我的id字段设置为'0'.

我可以通过在本地Tomcat VM中设置JVM参数来解决问题:

-Dorg.apache.el.parser.COERCE_TO_ZERO = FALSE

但是,这对我们客户的机器不起作用.是否可以在"代码内"设置/更改此JVM参数.

更新:我发现这是请求,但如果其他人有任何其他解决方法,我也想听到.

https://issues.apache.org/bugzilla/show_bug.cgi?id=48813

更新2:我无法将值从"0"更改为"null",因为我的应用程序应将"0"视为实际ID.所以我需要在运行时知道id文本框是否为空.

jsf tomcat el jvm-arguments managed-bean

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

尽管(Max)MetaspaceSize,Java 8仍为Metaspace保留最小1G

Java 8在启动后为Metaspace预留了1G.这意味着最小元空间大小为1G.但我将MetaspaceSize设置为300米,将MaxMetaspaceSize设置为400米.为什么Java会保留更多,然后我允许?

Java版本

$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

VM标志

$ jcmd 21689 VM.flags
21689:
-XX:CICompilerCount=3 -XX:ConcGCThreads=1 -XX:G1HeapRegionSize=1048576 -XX:InitialHeapSize=62914560 -XX:+ManagementServer -XX:MarkStackSize=4194304 -XX:MaxHeapSize=1006632960 -XX:MaxMetaspaceSize=399998976 -XX:MaxNewSize=603979776 -XX:MetaspaceSize=299999232 -XX:MinHeapDeltaBytes=1048576 -XX:NativeMemoryTracking=summary -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC 
Run Code Online (Sandbox Code Playgroud)

NMT

[jetty9-proxy@bm01 bin]$ jcmd 21689 VM.native_memory
21689:

Native Memory Tracking:

Total: reserved=2769543KB, committed=1311159KB

-                     Class (reserved=1221904KB, committed=197904KB)
                            (classes #36543)
                            (malloc=3344KB #44041) 
                            (mmap: reserved=1218560KB, committed=194560KB) 
Run Code Online (Sandbox Code Playgroud)

就在开始之后

Total: reserved=2402748KB, committed=150796KB     

-                     Class (reserved=1056956KB, committed=7868KB)
                            (classes #1300) …
Run Code Online (Sandbox Code Playgroud)

java jvm jvm-hotspot jvm-arguments

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

作为服务运行时,将JVM参数传递给Tomcat?

我需要将一些JVM参数传递给运行Tomcat的JVM,以便我的应用程序可以接收它们.

我想按照本文中概述的过程来获取环境变量.

我该怎么做呢?

更新 抱歉这是在Windows下运行的(客户端服务器上我的Dev machine 2003上的7)

java tomcat environment-variables jvm-arguments

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

Java禁用dpi-aware无法正常工作

我正在尝试使用-Dsun.java2d.dpiaware=false参数运行Java应用程序,但没有任何反应.

我希望有一个模糊的用户界面,但图标和字体的大小正常,似乎这个标志不起作用.

我在Windows 8.1上使用JDK 1.8.0_45.

我发现了这个错误https://bugs.openjdk.java.net/browse/JDK-8080153但我不明白如何解决它.

java jvm-arguments java-8 dpi-aware

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

Cassandra和Java 9 - ThreadPriorityPolicy = 42超出允许范围

最近我从官方网站安装了JDK 9和Apache Cassandra.但是现在当我在前台启动cassandra时,我得到了这样的信息:

apache-cassandra-3.11.1/bin$ ./cassandra -f

[0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/home/mmatak/monero/apache-cassandra-3.11.1/logs/gc.log instead.
intx ThreadPriorityPolicy=42 is outside the allowed range [ 0 ... 1 ]
Improperly specified VM option 'ThreadPriorityPolicy=42'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Run Code Online (Sandbox Code Playgroud)

到目前为止,我没有找到任何解决方案.Java 9和Cassandra可能还不兼容吗?这也是提到的问题 - #CASSANDRA-13107

但我不知道如何"删除旗帜"?在哪里可以覆盖或删除此标志?

jvm jvm-arguments cassandra java-9

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

哪些参数代表JVM内存选项中的内容?

有很多JVM参数影响JVM的内存使用情况,如 -Xms, -Xmx, -Xns, -XX:MaxPermSize...

  • 他们在做什么?
  • 还有吗?
  • 我有哪一个时,我得到了什么错误,以增加(例如OutOfMemoryError,StackOverflowError...)?

我找不到一个好的备忘单 - 让我们在这里创建一个.

java jvm jvm-arguments

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

Java内存限制-Xmx后缀:上限与小写m/M和g/G.

众所周知,可以限制Java堆大小-Xmx<amount><unit>,其中unit数据量单位如Gigabyte,Megabyte等.我知道这-Xmx128M意味着128 Mebibytes(= 128*1024*1024字节).

但这是真的-Xmx100m 吗,也可以使用兆字节使用的十进制单位(这将是100*1000*1000字节)?

那么是否可以通过使用小写单位后缀k, m, g来代替K, M, G?来使用这个十进制单位?

java memory heap jvm jvm-arguments

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

如何在Spring applicationContext.xml中读取JVM参数

我有一个使用Spring的JSF Web应用程序,我试图找到一种方法来引用applicationContext.xml中的JVM参数.我使用环境参数启动JVM(例如-Denv = development).我找到并尝试了一些不同的方法,包括:

<bean id="myBean" class="com.foo.bar.myClass">
  <property name="environment">
    <value>${environment}</value>
  </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

但是,当在MyClass中调用setter方法时,将传递字符串"$ {environment}",而不是"development".我有一个使用System.getProperty()的工作,但是能够通过Spring设置这些值会更好,更清晰.有没有办法做到这一点?

编辑:之前我应该​​提到的是我使用JDBC连接从我的数据库加载属性.这似乎增加了复杂性,因为当我向配置添加属性占位符时,属性占位符将覆盖从数据库加载的属性.我不确定它是依赖于顺序还是其他东西.这就像我可以做其中一个,但不是两个.

编辑:我目前正在使用以下配置加载属性:

<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jdbc.mydb.myschema"/> 
</bean>

<bean id="props" class="com.foo.bar.JdbcPropertiesFactoryBean">
    <property name="jdbcTemplate">
        <bean class="org.springframework.jdbc.core.JdbcTemplate">
            <constructor-arg ref="myDataSource" />
        </bean>
    </property>
</bean>

<context:property-placeholder properties-ref="props" />
Run Code Online (Sandbox Code Playgroud)

java spring web-applications jvm-arguments

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

为什么JVM允许为IntegerCache设置"高"值,而不是"低"?

我们都知道Java有一个缓存Integer(和其他一些类型)的数量在该范围内[-128, 127]被认为是"常用".

缓存的设计如下:

private static class IntegerCache {
    static final int low = -128;
    static final int high;
    static final Integer cache[];

    static {
        // high value may be configured by property
        int h = 127;
        String integerCacheHighPropValue =
            sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
        if (integerCacheHighPropValue != null) {
            try {
                int i = parseInt(integerCacheHighPropValue);
                i = Math.max(i, 127);
                // Maximum array size is Integer.MAX_VALUE
                h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
            } catch( NumberFormatException nfe) {
                // If the …
Run Code Online (Sandbox Code Playgroud)

java jvm-arguments

20
推荐指数
1
解决办法
750
查看次数