AdoptOpenJDK / AdoptOpenJDK/IcedTea-Web

Path processing does not work properly when running ProcessBuilder in CMD /c

未關閉
#877 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Java
星號
268
分支
96
PR 合併指標
30 天內沒有已合併 PR

描述

* Description

When executing CMD / C from ProcessBuilder in the Webstart environment of Jdk 8u333, path processing does not work properly.
'\' Will be included in the first letter.

This issue does not occur until JDK8u202.

Environment where problems occur
windows11(x86)/Windows7(32bit)
openwebstart / Oracle Javaws
jdk11 / Oracle jre8u333 / openjdk11_x86

Environment that operates normally
windows11(x86)/Windows7(32bit)
1 : IcedTea(openwebstart) / Oracle Javaws before jre8u202.
2 : Eclipse Debug (All-JDK 11/17/8 x586)

---
HowToReproduce:

1 tart application under JNLP
2 Test Resource

----
Actual Result Log

'\"C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe\"' is not recognized as an internal or external command,
operable program or batch file.

"C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" -h 127.0.0.1 -p 5432 -U postgres -F c -b -v --lock-wait-timeout=20s -f "C:\csswk\backup\webpos_pgSQL01.tar" TB_1001_20220316
/c
cmd
JAVA library.path    : C:\Program Files\Eclipse Adoptium\jre-8.0.332.9-hotspot\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;c:\program files\openwebstart\jre\bin;C:\Program Files\Java\jre1.8.0_152\bin;C:\Program Files\Eclipse Adoptium\jre-8.0.332.9-hotspot\bin;C:\Program Files\OpenWebStart;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;.
JAVA class.path      : .
JAVA.home            : C:\Program Files\Eclipse Adoptium\jre-8.0.332.9-hotspot
OS名(os.version):    : 6.1
OS名(os.arch)        : x86
OS名(os.name)        : Windows 7
java.version)        : 1.8.0_332

----
Expected Result Log

"C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" -h 127.0.0.1 -p 5432 -U postgres -F c -b -v --lock-wait-timeout=20s -f "C:\csswk\backup\webpos_pgSQL01.tar" TB_1001_20220316

"C:\Program Files (x86)\PostgreSQL\9.3\bin\pg_dump.exe" -h 127.0.0.1 -p 5432 -U postgres -F c -b -v --lock-wait-timeout=20s -f "C:\csswk\backup\webpos_pgSQL01.tar" TB_1001_20220316
/c
cmd
JAVA library.path    : C:\Program Files\java\jdk1.8.0_152\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;c:\program files\openwebstart\jre\bin;C:\Program Files\Java\jre1.8.0_152\bin;C:\Program Files\Eclipse Adoptium\jre-8.0.332.9-hotspot\bin;C:\Program Files\OpenWebStart;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;.
JAVA class.path      : .
JAVA.home            : C:\Program Files\java\jdk1.8.0_152\jre
OS名(os.version):    : 6.1
OS名(os.arch)        : x86
OS名(os.name)        : Windows 7
java.version)        : 1.8.0_152

Test Source code for an executable test case
--
package test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
public class process_test {
public static void main(String[] args) throws Exception {
// Process BUlter TEST CODE
System.out.println("java.version) : " + System.getProperty("java.version"));
System.out.println("OS名(os.name) : " + System.getProperty("os.name"));
System.out.println("OS名(os.arch) : " + System.getProperty("os.arch"));
System.out.println("OS名(os.version): : " + System.getProperty("os.version"));
System.out.println("JAVA.home : " + System.getProperty("java.home"));
System.out.println("JAVA class.path : " + System.getProperty("java.class.path"));
System.out.println("JAVA library.path : " + System.getProperty("java.library.path"));
String[] commandArr = {"cmd", "/c", "\"C:\\Program Files\\PostgreSQL\\9.3\\bin\\pg_dump.exe\" -h 127.0.0.1 -p 5432 -U postgres -F c -b -v --lock-wait-timeout=20s -f \"C:\\csswk\\backup\\webpos_pgSQL01.tar\" TB_1001_20220316"};
ProcessBuilder processBuilder = new ProcessBuilder(commandArr);
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
for(int i=0 ; i < commandArr.length ; i++) System.out.println(commandArr[i]);
try {
BufferedReader runtime = new BufferedReader(new InputStreamReader(process.getInputStream(), Charset.forName("MS932")));
String line;
while ((line = runtime.readLine()) != null) {
System.out.println(line);
}
int result = process.exitValue();
System.out.printf("result=%d%n", result);
Thread.sleep(5000);
}catch (Exception e) {
// TODO: handle exception
}
System.exit(0);
}
}
---

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。