我是Java的新手,正在创建我的第一个项目。

无论如何-我试图使用Runtime.getRuntime()。exec(__)来执行位于同一文件夹中的另一个已编译程序。

问题是-运行并输入程序其余部分的必要信息并到达执行点时,出现了某种错误。

java.io.IOException: Cannot run program "\Italian": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at Login.main(LOGIN.java:24)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 4 more


主要代码是-

import java.util.Scanner;
import java.io.*;
import javax.swing.JOptionPane;
class Login {

    public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    String username;
    String password;
    String a = "\\Italian";

    username = JOptionPane.showInputDialog(null,"Log in:\nEnter username: ");
    password = JOptionPane.showInputDialog(null,"Enter Password: ");

    users check = new users(username, password);



    if(check.auth())
        try
        {
            Runtime.getRuntime().exec(a);
        }
        catch(IOException ioe)
        {
            ioe.printStackTrace();
        }


    }

}

最佳答案

错误消息会告诉您确切的错误-您感兴趣的文件的路径错误。要找出正确的路径,请添加到程序中:

System.out.println("user dir path: " + System.getProperty("user.dir"));


然后使用相对于所示路径的路径。

另外,意大利语文件是否具有扩展名,例如.exe?否则,它将如何运行?调用Runtime.getRuntime().exec(a);时,需要表示一个可执行的String集合,通常是一个数组或ArrayList,有时需要直接调用OS的命令。另外,还可以考虑使用ProcessBuilder获取您的Process,不要忘记处理Process的流。

关于java - Runtime.getRuntime()。exec(__);,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30806105/

10-10 03:03