簡體   English   中英

在命令提示符下使用Powershell運行Java可執行文件

[英]Running java executable with powershell within command prompt

我有一個正在運行並運行Java可執行文件的Powershell腳本。 在生成一堆通過命令提示符運行的Powershell腳本文件之前。 現在,我要創建它,因此不需要創建文件。

這是工作文件(.ps1)中的代碼行:

java <mem opts here> "-Doption1=3" "-Doption2=`` ` ``"true`` ` ``" jar.exe

我希望能夠在命令提示符下執行以下操作:

Powershell -Command "java <mem opts here> "-Doption1=3" "-Doption2=`` ` ``"true`` ` ``" jar.exe"

即使只是問這個問題,我在轉義字符方面也遇到了問題。 當通過命令提示符通過Powershell調用Java時,如果引號中的引號帶有引號,則處理轉義字符的正確方法是什么? (我知道這有點混亂)

如果您只關注需要報價的部分,則可以減輕報價的麻煩(假設選項值true確實需要報價):

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

以上將使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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM