问题是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=etaste1
-Dresourcepath=
.
DW_Install
(注意resourcepath和resourcepath的值不在同一直线上。),而输出到
echo java -cp '.;.\common.jar' -Dcontext=atest1 '-Dresourcepath=.' DW_Install
产生以下输出:
java
-cp
.;.\common.jar
-Dcontext=etaste1
-Dresourcepath=.
DW_Install
这更符合我们的喜好。
虽然我希望对大家都不希望这篇文章能够帮助那些必须在Windows机器上部署Java项目的人(尽管他们不会在其他任何平台上运行)。
当你说这不PowerShell的工作,实际上发生了什么? – DanielGibbs 2011-01-13 21:26:39
我得到了java.exe帮助输出,就好像我只是键入了`java`或`java -help`。 – 2011-01-18 16:03:57