javac powershell类路径分隔符

时间:2017-01-07 18:47:16

标签: powershell classpath javac separator

所以我知道不同的操作系统需要不同的类路径分隔符。我正在运行一系列窗口,其中CMD已被Powershell取代,这在使用分号分隔符时会导致问题。

我正在尝试运行的命令以cmd /c开始尝试让它在命令提示符下运行,但我认为当PowerShell解析整个命令时它会看到分号并认为这是结束!

我的全部命令是:

cmd /c javac -cp PATH1;PATH2 -d DESTINATION_PATH SOURCE_PATH

我尝试过使用空格,冒号和句号无效。有人可以提出解决方案吗?

这是我关于stackoverflow的第一个问题,希望社区可以提供帮助,并最终帮助其他人。 :)

3 个答案:

答案 0 :(得分:0)

我建议您使用Powershell以下列方式启动该过程

Start-Process cmd.exe -ArgumentList "/c javac -cp PATH1;PATH2 -d DESTINATION_PATH SOURCE_PATH" -NoNewWindow

答案 1 :(得分:0)

不应该要求在CMD中运行javac。只需在(可能)包含空格或特殊字符的参数周围加上引号。我还建议您使用call operator&)。在这种情况下它是可选的,但是如果你将可执行文件放在引号中是必需的(例如,因为可执行文件或路径包含空格或者你想将它放在变量中)。

& javac -cp "PATH1;PATH2" -d "DESTINATION_PATH" "SOURCE_PATH"

您还可以使用splatting来提供参数:

$javac  = "$env:JAVA_HOME\bin\javac.exe"
$params = '-cp', "PATH1;PATH2",
          '-d', "DESTINATION_PATH",
          "SOURCE_PATH"

& $javac @params

答案 2 :(得分:0)

javac -classpath“ path1:path2:”。 main.java在powershell中可以解决问题。该cmd不需要用引号引起来,但是在使用powershell时,我们需要加上引号,它可以平稳地工作。