使用Runtime.getRuntime()。exec(命令)启动程序时遇到问题

时间:2012-05-15 18:05:44

标签: java runtime exe actionlistener runtime.exec

我目前正在编写一个可以在我的电脑上打开.exe程序的Java程序,例如MS Word。 我遇到了问题,因为Runtime.getRuntime()。exec()只会成功打开某些程序。我已经为所有程序使用了完全相同的代码,但无论如何,某些程序无法打开。

以下是我下载的程序代码,Picasa 3:

class picasaHandler implements ActionListener
{
    public void actionPerformed(ActionEvent r)
    {
        try 
        {
            Runtime.getRuntime().exec("cmd /c start Picasa3.exe");

        }
        catch (IOException t)
        {
            JOptionPane.showMessageDialog(null,
                    "Sorry, could not find Picasa 3");
        }
    }
}

所以我的问题是,为什么不运行Runtime.getRuntime()。exec()运行我使用它的所有程序,以及如何运行像Picasa 3这样的程序,我现在用这种方法无法运行。

4 个答案:

答案 0 :(得分:4)

我猜测Picasa3.exe不在你的%PATH%上,所以它不知道如何加载它。您是否尝试过指定Picasa3.exe的完整路径?

Runtime.getRuntime().exec("cmd /c \"c:\\program files (x86)\\Google\\Picasa3\\Picasa3.exe\"")

答案 1 :(得分:1)

File file=new File("picassa3");
String filename=file.getAbsolutePath(file);
try 
    {
        Runtime.getRuntime().exec(filename);

    }
    catch (IOException t)
    {
        JOptionPane.showMessageDialog(null,
                "Sorry, could not find the file");
    }

答案 2 :(得分:0)

运行时的exec只能启动Windows路径上的应用程序。有些程序会自动在路径上,而其他程序(如Picasa)则不会。

唯一的解决方法是确定正确的路径,然后启动该应用程序。

答案 3 :(得分:0)

这可能适合你。 如果要使用Runtime.exec()运行某个程序,只需将其安装路径添加到系统变量中的路径变量即可。要找到它的安装路径,只需右键单击它的快捷方式并选择“查找目标”。然后在路径末尾连接整个地址变量。