簡體   English   中英

Java 中的 JAVA_OPTS“-D”標志的值是否有最大大小限制?

[英]Is there a max size limit on the value of a JAVA_OPTS “-D” flag in Java?

我的情況是 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

是和不是。 情況很復雜。 但主要是好消息。

  • java不在乎; 但是,args 作為字符串傳入(而不是作為磁盤中的 stream),這意味着基於您的 memory 存在限制。 但是,1 GB 的文本價值是......很多 -D 選項。 比您目前擁有的數量級多幾個數量級。
  • 然而,shell 和操作系統當然可以。 例如,Windows不能運行長度超過 8191 個字符的命令。 你目前有大約 1200 個字符,所以你可以讓你的 -D 東西比現在長 7 倍,但是你已經完成了,至少在 windows 上。 在 posix 上,它取決於操作系統和 shell,但通常也有限制。 getconf ARG_MAX通常會告訴您它是什么。 在我的桌面系統上,它目前是 1048576,在我可以訪問的隨機 linux shell 上,它是 2097152。這對你來說有很大的增長空間。
  • 使用@系統可以避免所有問題。 您可以編寫java @foo.txt ,這將導致 java 可執行文件打開foo.txt並將該文件的內容用作 arguments。 因此,將您的巨型 -D 開關放在一個文件中,然后使用@allThatJazz.txt而不是-Dreallylongcommandlineoption 現在您可以停止關心操作系統強加的參數限制。
  • 鑒於 -D 開關可通過System.getProperty使用,您的限制現在與堆相關。 在它變得笨拙之前,我們正在談論數百兆字節 - 可能是 200,000,000 個字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM