【问题标题】:Runtime.getRuntime().exec(__);Runtime.getRuntime().exec(__);
【发布时间】:2015-08-28 15:25:43
【问题描述】:

我对 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();
        }


    }

}

【问题讨论】:

  • everythig 取决于路径在哪里 - “执行位于同一文件夹中的另一个编译程序使用”,如果在编译的 Java 包中,则阅读 Oracle 教程部署 — 如何打包应用程序 ....,否则路径代码错误

标签: java swing runtime ioexception


【解决方案1】:

你在哪个 opsys 上运行,android、linux、windows?

在 android 上,在终端中,如果它是具有权限的二进制文件,您只需键入命令即可。

如果它在没有执行权限的驱动器上,比如 sdcard,你输入“sh”

如果是windows,在命令前输入完整路径:“c:/folder/runcmd.exe”

【讨论】:

    【解决方案2】:

    错误消息准确地告诉您出了什么问题——您感兴趣的文件的路径是错误的。要找出正确的路径是什么,请添加到您的程序中:

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

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

    另外,意大利语文件是否具有 .exe 之类的扩展名?否则,它将如何运行?在调用Runtime.getRuntime().exec(a); 时,a 需要表示字符串的可执行 集合,通常是数组或ArrayList,有时需要直接调用操作系统的命令。另外,作为旁白,请考虑使用 ProcessBuilder 来获取您的流程,并且不要忘记处理流程的流。

    【讨论】:

      猜你喜欢
      • 2011-01-09
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多