1

私は現在、たとえば MS Word のように、自分の PC で .exe プログラムを開くことができる Java プログラムを作成しています。ただし、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

4 に答える 4

4

Picasa3.exe は %PATH% のどこにもないので、ロード方法がわからないのではないかと思います。Picasa3.exe へのフル パスを指定してみましたか?

Runtime.getRuntime().exec("cmd /c \"c:\\program files (x86)\\Google\\Picasa3\\Picasa3.exe\"")
于 2012-05-15T18:08:17.833 に答える
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");
    }
于 2012-11-02T13:21:01.323 に答える
0

これはあなたのために働くかもしれません。Runtime.exec() を使用して特定のプログラムを実行する場合は、そのインストール パスをシステム変数のパス変数に追加するだけです。インストール パスを見つけるには、ショートカットを右クリックし、[ターゲットを検索] を選択します。次に、パス変数の最後にそのアドレス全体を連結します。

于 2012-05-15T19:01:58.520 に答える
0

ランタイムの exec は、Windows パス上にあるアプリケーションのみを開始できます。一部のプログラムは自動的にパスに配置されますが、Picasa などのプログラムはそうではありません。

これに対する唯一の回避策は、正しいパスを特定してからそのアプリケーションを起動することです。

于 2012-05-15T18:11:54.340 に答える