【问题标题】:Convert string with space-delimiters to array. And output this array, like a string将带有空格分隔符的字符串转换为数组。并输出这个数组,就像一个字符串
【发布时间】:2020-08-30 06:54:48
【问题描述】:

我有一个问题,我已经在 bash/powershell 中解决了。 我需要将 java 的参数存储在一个变量中。

SET JAVA_ARGS="-Xms256m -Xmx2048m"
java %JAVA_ARGS% -jar my.jar

当我做这个的时候,我收到了

Invalid initial heap size: -Xms256m -Xmx2048m

很好,我尝试在 powershell 中解决这个问题

$JavaArgs="-Xms256m -Xmx2048m"
${JavaArgsArray}=$JavaArgs.Split(" ")
java $JavaArgsArray -jar my.jar

在 bash 中,我这样做了

java_arguments="-Xms256m -Xmx2048m"
IFS=' ' read -r -a array_java_arguments <<< "${java_arguments}"
java "${array_java_arguments [@]}" -jar my.jar

但是,我需要在cmd中有版本,如何解决这个问题?请问你能帮帮我吗 ? 我需要从变量中获取数组,并且我必须在脚本中使用这个数组。没有分隔符,就像将字符串转换为数组一样,输出应该是相同的。 例如,如果我有:

ECHO %JAVA_ARGS%

输出

-Xms256m -Xmx2048m

我必须有类似的输出:

ECHO %ARRAY_JAVA_ARGS%

【问题讨论】:

  • 尝试使用不同的分隔符分隔它们,例如 ;,
  • 为什么要为变量分配引号?

标签: java arrays shell batch-file cmd


【解决方案1】:

很容易。 我用过:

java "'%JAVA_ARGS%' -jar my.jar"

需要做的:

java "%JAVA_ARGS% -jar my.jar"

只是不要使用:

'%JAVA_ARGS%'

用途:

%JAVA_ARGS%

【讨论】:

    猜你喜欢
    • 2015-06-02
    • 2019-08-23
    • 2021-05-12
    • 2020-11-27
    • 2018-02-16
    • 2022-12-31
    • 1970-01-01
    • 2011-08-31
    • 2017-06-14
    相关资源
    最近更新 更多