gpt4 book ai didi

java - powershell运行java进程问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:21 26 4
gpt4 key购买 nike

我正在尝试通过 Windows XP 中的 Powershell 运行 java 进程。这是命令:

java.exe -cp .;./common.jar -Dcontext=atest1 -Dresourcepath=. DW_Install

因此,类路径是 .和 .\common.jar(我认为 java 使用了错误的斜杠,对吧?)有两个环境变量,一个是“atest1”,另一个是“.”。执行 main 的类是 DW_Install(在默认包中)。

此命令在 cmd.exe 中有效,但在 PS 中无效。这是怎么回事? PS 在解析此 CMD 不执行的命令(反之亦然)时在做什么?

亚伦

最佳答案

问题是 PS 出于某种原因解析 -Dresourcepath=. 与 cmd 不同。有效的是

java -cp '.;.\common.jar' -Dcontext=atest1 "-Dresourcepath=." DW_Install

斜线的走向无关紧要,使用引号('")也无关紧要。必须对类路径进行转义,但是,带有某种引号。查看 PS 解释器得到什么的一个很好的测试是回显它。以下内容:

echo java -cp '.;.\common.jar' -Dcontext=atest1 -Dresourcepath=. DW_Install

产生以下输出:

java
-cp
.;.\common.jar
-Dcontext=atest1
-Dresourcepath=
.
DW_Install

(注意资源路径和资源路径的值不在同一行。)而输出到

echo java -cp '.;.\common.jar' -Dcontext=atest1 '-Dresourcepath=.' DW_Install

产生以下输出:

java
-cp
.;.\common.jar
-Dcontext=etaste1
-Dresourcepath=.
DW_Install

这更符合我们的喜好。

虽然我不希望你们遇到这种情况,但我希望这篇文章能帮助那些必须在 Windows 机器上部署 java 项目的人(即使它们永远不会在任何其他平台上运行)。

关于java - powershell运行java进程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4685184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com