当前位置: 首页 > 知识库问答 >
问题:

在Java中对JAVA_OPTS“-d”标志的值有最大大小限制吗?

祁辰阳
2023-03-14

我遇到一个情况,其中一个JVM选项,“-d”标志很大,超过1000个字符。这个值有多大的限制吗?

-Dhttp.nonProxyHosts=localhost|127.0.0.1|169.254.169.254|162.31.160.0/20|100.77.147.160/27|100.77.163.160/27|100.77.179.160/27|162.18.168.0/23|162.18.170.0/23|162.18.172.0/23|10.100.0.0/16|.internal|.foobr.com|.execute-api.us-west-2.amazonaws.com|.s3.us-west-2.amazonaws.com|.us-west-2.eks.amazonaws.com|.us-west-2.vpce.amazonaws.com|amazonlinux.us-west-2.amazonaws.com|api.sagemaker.us-west-2.amazonaws.com|cloudformation.us-west-2.amazonaws.com|cloudtrail.us-west-2.amazonaws.com|codebuild-fips.us-west-2.amazonaws.com|codebuild.us-west-2.amazonaws.com|config.us-west-2.amazonaws.com|dynamodb.us-west-2.amazonaws.com|ec2.us-west-2.amazonaws.com|ec2messages.us-west-2.amazonaws.com|elasticloadbalancing.us-west-2.amazonaws.com|events.us-west-2.amazonaws.com|kinesis.us-west-2.amazonaws.com|kms.us-west-2.amazonaws.com|logs.us-west-2.amazonaws.com|monitoring.us-west-2.amazonaws.com|runtime.sagemaker.us-west-2.amazonaws.com|secretsmanager.us-west-2.amazonaws.com|servicecatalog.us-west-2.amazonaws.com|sns.us-west-2.amazonaws.com|ssm.us-west-2.amazonaws.com|ssmmessages.us-west-2.amazonaws.com|sts.us-west-2.amazonaws.com

共有1个答案

司空福
2023-03-14

是和不是。它很复杂.但大多是好消息。

  • Java不在意;参数是以字符串的形式传入的(而不是以来自磁盘的流的形式传入),这意味着根据您的内存有一个限制。但是,1 GB的文本是...很多-d选项。比您当前拥有的多几个数量级。
  • 但是,shell和OS当然会这样做。例如,Windows不能运行长度超过8191个字符的命令。您目前使用了1200个字符,所以您可以使-d的内容比现在的长7倍,但之后您就完成了,至少在Windows上是这样。在posix上,它依赖于操作系统和shell,但通常也有限制。getconf arg_max通常会告诉您它是什么。在我的桌面系统上,它目前是1048576,在我可以访问的一个随机linux shell上,它是2097152。这对你来说是一个很大的发展空间。
  • 您可以通过使用@系统来避免所有问题。您可以编写Java@foo.txt,这将导致Java可执行文件打开foo.txt并将此文件的内容用作参数。因此,将您的巨型-D开关放在一个文件中,然后使用@AllThatJazz.txt而不是-DreallyLongCommandLineOption。现在您可以不再关心OS施加的参数限制了。
  • 鉴于-d开关可通过system.getproperty使用,您的限制现在是与堆相关的。我们说的是几百兆字节,然后才会变得笨拙--可能是200,000,000个字符。
 类似资料:
  • 问题内容: 我想限制a的最大大小,以对正在实现的各种哈希算法进行度量。我在的一个重载构造函数中查看了loadfactor 。 我尝试在构造函数中将loadFactor设置为0.0f(这意味着我不希望HashMap的大小从EVER增大),但将此无效: 还有另一种方法来限制它的大小,使其永远不会增长吗? 问题答案: 有时越简单越好。

  • 问题内容: 如果设置最大Java堆大小,那么单个对象可能的最大大小是多少? 假设我的应用程序只有一个类,而我正在创建一个对象。 该对象有大约大小限制吗? 我的课看起来像下面的课: 注意 正如我提到的JVM堆大小一样,我要求定量地回答。 问题答案: 理论上最大的Java对象(如果您有足够大的堆)将是带有2 31-1个元素的Java对象。那是16Gb。 但是,对于给定的堆大小,您将能够创建的最大对象取

  • 我正在使用GCC为ARM开发一个C。我遇到了一个问题,我没有启用优化,我无法为我的代码创建二进制(ELF),因为它不适合可用空间。然而,如果我只是启用调试优化(-Og),这是我所知的最低优化,代码很容易适合。 在这两种情况下,都启用了-ffunction-节、-fdata-节、-fno-异常和-Wl、--gc-节。 闪存大小:512 kB 没有优化:. text溢出约200 kB 使用-Og优化:

  • 问题内容: 我想返回该数字,只要它在限制范围内,否则返回限制的最大值或最小值。我可以结合使用和和。 我想知道,如果有一个现有的或我俯瞰功能。 如果第三方库很常见(例如Commons或Guava),则欢迎它们 问题答案: 从版本21开始,Guava包括(以及其他原语的等效方法)。从发行说明中: 添加了将给定值限制在和值定义的封闭范围内的方法。如果值在范围内,则返回值本身,如果值在范围内,则返回值,如

  • 问题内容: 我正在使用JVM标志运行Java进程,并看到以下输出: 有没有办法解决这个问题? 问题答案: 当无法满足Java堆的分配或永久生成时,命令行选项告诉HotSpot VM生成堆转储。使用此选项运行不会产生任何开销,因此对于OutOfMemoryError需要很长时间才能浮出水面的生产系统很有用。 为了解决您面临的特定问题,可以使用以下纠正措施之一: 措施1: XX:HeapDumpSeg

  • 在Log4J2中,当大小超过指定阈值时,我希望修剪写入控制台附加器的消息的结尾。 知道吗?