3

我不知道我是否可以运行此代码并且它会起作用,但在这里:

public void actionPerformed(ActionEvent e) {
        try
        {
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("c:\\Users\\Toby\\AppData\\Roaming\\.minecraft\\minecraft.exe");
        }

        catch(Exception a)
        {

        }
    }

这链接到一个按钮,它会启动我的世界启动器。如果我想把它给我的朋友,我该怎么做才能让它不寻找用户“Toby”,而是寻找他们的主文件夹?对不起,如果它令人困惑!

4

3 回答 3

5

我想你正在寻找user.home房产。这里有一个可用的属性列表:http: //www.mindspring.com/~mgrand/java-system-properties.htm

因此,您的代码将更改为:

Process p = rt.exec(System.getProperty("user.home") + \\AppData\\Roaming\\.minecraft\\minecraft.exe");
于 2012-09-08T18:48:10.153 回答
4

如果您想与其他版本的 Windows 保持一致,我建议使用System.getenv("APPDATA")而不是添加到,System.getProperty("user.home")因为旧版本的 Windows 中不存在漫游文件夹

所以你的代码会变成这样:

Process p = rt.exec(System.getenv("APPDATA") + ".minecraft\\minecraft.exe")
于 2012-09-08T19:06:37.940 回答
0

尝试System.getProperty("user.home")

String mhome = System.getProperty("user.home"))+"";

    public void actionPerformed(ActionEvent e) {
            try
            {
            Runtime rt = Runtime.getRuntime();
            Process p = rt.exec(mhome+"\\AppData\\Roaming\\.minecraft\\minecraft.exe");
            }

            catch(Exception a)
            {

            }
        }
于 2012-09-08T18:49:12.993 回答