在用户文件夹中启动程序而不知道用户名

时间:2012-09-08 18:46:18

标签: java runtime directory home-directory

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

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',而是寻找他们的主文件夹?对不起,如果它令人困惑!

3 个答案:

答案 0 :(得分: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");

答案 1 :(得分:4)

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

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

Process p = rt.exec(System.getenv("APPDATA") + ".minecraft\\minecraft.exe")

答案 2 :(得分: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)
            {

            }
        }