Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在命令提示符下使用powershell运行java可执行文件_Java_Powershell_Cmd - Fatal编程技术网

在命令提示符下使用powershell运行java可执行文件

在命令提示符下使用powershell运行java可执行文件,java,powershell,cmd,Java,Powershell,Cmd,我有一个正在运行的powershell脚本,它运行一个java可执行文件。在我生成一组通过命令提示符运行的powershell脚本文件之前。现在我想这样做,不需要创建文件 以下是工作(.ps1)文件中的行的外观: java“-Doption1=3”-Doption2=`true``jar.exe 我希望能够在命令提示符下执行以下操作: Powershell -Command "java <mem opts here> "-Doption1=3" "-Doption2=`` ` ``

我有一个正在运行的powershell脚本,它运行一个java可执行文件。在我生成一组通过命令提示符运行的powershell脚本文件之前。现在我想这样做,不需要创建文件

以下是工作(.ps1)文件中的行的外观:

java“-Doption1=3”-Doption2=`true``jar.exe
我希望能够在命令提示符下执行以下操作:

Powershell -Command "java <mem opts here> "-Doption1=3" "-Doption2=`` ` ``"true`` ` ``" jar.exe"
Powershell-命令“java”-Doption1=3“-Doption2=`true``jar.exe”
即使只是问这个问题,我对转义角色也有问题。在命令提示符下通过powershell调用java时,如果引号中有引号,那么处理转义字符的正确方法是什么?(我知道这有点混乱)

如果您只关注需要引用的部分(假设选项值
true
确实需要引用),则可以减少引用的麻烦:

上述操作将使
java.exe
参见:

java -Doption1=3 -Doption2="true" jar.exe
正如您所看到的,即使是这个简单的预期结果引用案例也相当模糊,因为您要处理三层解释:

  • cmd.exe
    自己对初始命令行的解释

  • PowerShell对其收到的论点的解释

  • PowerShell如何将参数转换为对外部程序的调用(
    java.exe

无论如何,解释的最后一层是目标程序(
java.exe
)如何解析命令行


也就是说,为了调用
java.exe
,即外部程序,您根本不需要PowerShell;直接调用它

REM From cmd.exe
C:\> java -Doption1=3 -Doption2="true" jar.exe

你在说什么?为什么不直接使用PowerShell?也就是说,您可以使用EncodedCommand选项
java -Doption1=3 -Doption2="true" jar.exe
REM From cmd.exe
C:\> java -Doption1=3 -Doption2="true" jar.exe