javac powershell 类路径分隔符
javac powershell classpath separator
所以我知道不同的操作系统需要不同的类路径分隔符。我正在 运行构建 windows,其中 CMD 已替换为 Powershell,这在使用分号分隔符时会导致问题。
我正在尝试 运行 的命令以 cmd /c
开头,试图在命令提示符中将其改为 运行 但我认为当 PowerShell 正在解析整个命令时看到分号以为到此结束!
我的全部命令是:
cmd /c javac -cp PATH1;PATH2 -d DESTINATION_PATH SOURCE_PATH
我试过使用 space、冒号和句点,但没有用。有人可以提出解决方案吗?
这是我关于Whosebug的第一个问题,希望社区能够提供帮助,并最终帮助到其他人。 :)
我建议您使用 Powershell 按以下方式启动该过程
Start-Process cmd.exe -ArgumentList "/c javac -cp PATH1;PATH2 -d DESTINATION_PATH SOURCE_PATH" -NoNewWindow
运行 javac
在 CMD 中不应该是必需的。只需在(可能)包含空格或特殊字符的参数周围加上引号。我还建议使用 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
javac -classpath "path1:path2:." main.java 在 powershell 中发挥作用。 cmd 不需要双引号,但是在使用 powershell 时我们需要输入引号并且它运行顺利。
所以我知道不同的操作系统需要不同的类路径分隔符。我正在 运行构建 windows,其中 CMD 已替换为 Powershell,这在使用分号分隔符时会导致问题。
我正在尝试 运行 的命令以 cmd /c
开头,试图在命令提示符中将其改为 运行 但我认为当 PowerShell 正在解析整个命令时看到分号以为到此结束!
我的全部命令是:
cmd /c javac -cp PATH1;PATH2 -d DESTINATION_PATH SOURCE_PATH
我试过使用 space、冒号和句点,但没有用。有人可以提出解决方案吗?
这是我关于Whosebug的第一个问题,希望社区能够提供帮助,并最终帮助到其他人。 :)
我建议您使用 Powershell 按以下方式启动该过程
Start-Process cmd.exe -ArgumentList "/c javac -cp PATH1;PATH2 -d DESTINATION_PATH SOURCE_PATH" -NoNewWindow
运行 javac
在 CMD 中不应该是必需的。只需在(可能)包含空格或特殊字符的参数周围加上引号。我还建议使用 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
javac -classpath "path1:path2:." main.java 在 powershell 中发挥作用。 cmd 不需要双引号,但是在使用 powershell 时我们需要输入引号并且它运行顺利。