java - 尝试运行 Powershell 脚本时出现 Java ProcessBuilder 错误

标签 java powershell

我正在尝试从我的 java 程序运行 Powershell 脚本 (PS1) 文件。

这是我的 Java 代码:

 for     (  ;  ; )  {
     ProcessBuilder pb = new ProcessBuilder("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -Command \"C:\\Java_Scratch2\\University.PS1"); 
     Process p = pb.start();
     p.waitFor();   
    }   

但是当我尝试执行时,我在 Windows CMD 中收到以下错误:

C:\Java_Scratch2>java ParentClassBatchRunner
java.io.IOException: Cannot run program "C:\Windows\System32\WindowsPowerShell\v
1.0\powershell.exe -Command "C:\Java_Scratch2\University.PS1": CreateProcess err
or=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(Unknown Source)
        at ParentClassBatchRunner.main(ParentClassBatchRunner.java:16)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find th
e file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(Unknown Source)
        at java.lang.ProcessImpl.start(Unknown Source)
        ... 2 more

我尝试更改它的格式,将 ~ 替换为空格等。但仍然卡住了。谢谢

最佳答案

您错误引用了一个论点。

但无论如何,您不应该使用这种形式的 ProcessBuilder。像这样调用它:

final ProcessBuilder pb = new ProcessBuilder(
    "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
    "-Command",
    "C:\\Java_Scratch2\\University.PS1"
);

final Process p = pb.start();

// and don't forget to check the result of p.waitFor()

关于java - 尝试运行 Powershell 脚本时出现 Java ProcessBuilder 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35543828/

相关文章:

java - 如何在 Jasper Report 中动态显示列?

c# - 如何编写(测试)不会被编译器/JIT 优化的代码?

windows - 有没有办法让 powershell 等待安装完成?

powershell - 如何确定执行函数的文件名

Powershell:特定网卡的计数器实例名称

java - 快速静态键值映射

java - 如何将对象(JAXB)或 byte[] (来自该对象)转换为 `org.w3c.dom.Element` ?

java - XX :HeapDumpSegmentSize and XX:SegmentedHeapDumpThreshold 的用法

wpf - Powershell WPF StackPanel无法正确更新

powershell - 有什么方法可以引用管道中的前一个对象吗?