相关疑难解决方法(0)

_JAVA_OPTIONS JAVA_TOOL_OPTIONS和JAVA_OPTS之间的区别

我认为在_JAVA_OPTIONS和之间进行比较会很棒JAVA_TOOL_OPTIONS.我一直在寻找一个,但我找不到任何东西,所以我希望我们能在Stackoverflow上找到这方面的知识.

JAVA_OPTS包括完整性.它不是JVM的一部分,但在野外有很多问题.

我知道的:

到目前为止,我发现:

  • JAVA_OPTSJDK不使用它,而是由许多其他应用程序使用(请参阅此文章).
  • JAVA_TOOL_OPTIONS并且_JAVA_OPTIONS是将JVM参数指定为环境变量而不是命令行参数的方法.
    • 被至少javajavac
    • 他们有这个优先权:
      1. _JAVA_OPTIONS (覆盖其他人)
      2. 命令行参数
      3. JAVA_TOOL_OPTIONS (被其他人覆盖)

我想知道什么

  • 有没有官方文件比较JAVA_TOOL_OPTIONS_JAVA_OPTIONS
  • JAVA_TOOL_OPTIONS和之间是否存在任何其他差异_JAVA_OPTIONS(优先级除外).
  • 其中的可执行文件回暖JAVA_TOOL_OPTIONS_JAVA_OPTIONS(除了javajavac)
  • 什么可以被包含在任何限制JAVA_TOOL_OPTIONS_JAVA_OPTIONS

官方文件

我找不到任何关于的文档_JAVA_OPTIONS.该文件JAVA_TOOL_OPTIONS没有说明差异:

由于无法始终访问或修改命令行,例如在嵌入式VM中或仅在脚本内深入启动的VM,因此提供了JAVA_TOOL_OPTIONS变量,以便在这些情况下可以启动代理.
...

示例脚本

这是我用来解决这个问题的代码.控制台输出包含在注释中:

export JAVA_OPTS=foobar
export JAVA_TOOL_OPTIONS= 
export _JAVA_OPTIONS="-Xmx512m -Xms64m"

java -version                          
# Picked up JAVA_TOOL_OPTIONS: 
# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m
# …
Run Code Online (Sandbox Code Playgroud)

java jvm jvm-arguments

120
推荐指数
3
解决办法
6万
查看次数

如何为wildfly增加堆内存

我的Wildfly8是在带有standalone.sh的linux服务器上启动的.我注意到服务器是以很少的堆内存空间启动的.我需要增加服务器和服务器上运行的应用程序的堆内存空间.我该怎么做?谢谢你们!

java performance heap-memory wildfly

54
推荐指数
6
解决办法
6万
查看次数

Linux 更新后 JVM 中的文件编码错误

更新linux和java(1.6.0.13->1.6.0.45)后,Java进程使用不同的文件编码(系统属性file.encoding)

新操作系统版本。不幸的是我不再知道以前的版本了。但我可以看出,更新出错了。我的同事首先使用 x32 操作系统版本进行更新,然后我们重新安装了 x64 版本。

>uname -a
Linux <hostname> 2.6.31.5-0.1-desktop #1 SMP PREEMPT 2009-10-26 15:49:03 +0100 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

区域设置

>locale
LANG=en_US.ISO8859-1
LC_CTYPE=en_US.ISO8859-1
LC_NUMERIC="en_US.ISO8859-1"
LC_TIME="en_US.ISO8859-1"
LC_COLLATE="en_US.ISO8859-1"
LC_MONETARY="en_US.ISO8859-1"
LC_MESSAGES="en_US.ISO8859-1"
LC_PAPER="en_US.ISO8859-1"
LC_NAME="en_US.ISO8859-1"
LC_ADDRESS="en_US.ISO8859-1"
LC_TELEPHONE="en_US.ISO8859-1"
LC_MEASUREMENT="en_US.ISO8859-1"
LC_IDENTIFICATION="en_US.ISO8859-1"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

测试程序

public class Test
{
  public static void main(String[] args)
  {
    System.out.println(System.getProperty("file.encoding"));
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我启动这个测试程序,它会返回 ANSI_X3.4-1968。在具有相同区域设置的其他计算机上,它返回 ISO8859-1。即使我从显式环境变量开始,它也保持不变。唯一可行的解​​决方案是使用 -Dfile.encoding 选项。但我不想调整所有使用java的脚本(tomcat、maven、ant、hudson......)。我想恢复旧的行为,即 Java 程序中的文件编码是从系统区域设置定义中检索的。

>java Test
ANSI_X3.4-1968

>LANG=de_DE.ISO8859-1 java Test
ANSI_X3.4-1968

>java -Dfile.encoding=ISO8859-1 Test
ISO8859-1
Run Code Online (Sandbox Code Playgroud)

至少c程序获得正确的编码并且不使用ANSI_X3.4-1968

>idn --debug  --quiet "a.de"
Charset `ISO-8859-1'.
....
Run Code Online (Sandbox Code Playgroud)

有谁知道,如果有任何 jvm 特定设置,可能会在操作系统或 …

java unix encoding locale

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

标签 统计

java ×3

encoding ×1

heap-memory ×1

jvm ×1

jvm-arguments ×1

locale ×1

performance ×1

unix ×1

wildfly ×1