私はMinecraftersとそのModpackのグループのためにプログラムを書いています、プログラムはカスタムランチャーです。問題は、Mac-OSXユーザーがフォルダの作成に問題があるプログラムを使用しようとする/Users/<username>/Library/Application Support/.melbvicminecraft/
と、アクセス許可の問題であることはわかっていますが、rootがなくてもアプリケーションを使用できるようにする方法を見つけたいと考えています。権限。
Main.java:
public static File getMinecraftDir()
{
String os = getOS();
String userHome = System.getProperty("user.home", ".");
if(os == "win")
{
String appdata = System.getenv("APPDATA");
String location = appdata != null ? appdata : userHome;
return new File(location);
}
else if(os == "mac")
{
return new File(userHome, "Library/Application Support/");
}
else
return new File(userHome);
}
MinecraftLoginThread.java:
/**
* Make a new Minecraft login handler with the selected dir
*
* @param settings Settings file located on the <strong>server</strong>
* @param server The content server
* @param minecraftDir minecraftDir The selected Minecraft dir
*/
public MinecraftLoginThread(SettingsFile settings, String server, File minecraftDir)
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
}
catch (Exception e)
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e1)
{
e1.printStackTrace();
}
}
try
{
Main.logger.debug("Minecraft dir: " + minecraftDir.getAbsolutePath());
Main.logger.debug("Minecraft exists: " + minecraftDir.exists());
if(!minecraftDir.exists())
{
try
{
minecraftDir.setWritable(true);
minecraftDir.setReadable(true);
if(minecraftDir.mkdirs())
Main.logger.debug("Made new Minecraft dir: " + minecraftDir.getAbsolutePath());
else
Main.killError("Failed to make new Minecraft dir!");
}
catch (Exception e) { Main.killError(e.toString()); }
}
if(!(new File(minecraftDir, "lastLogin").exists()))
(new File(minecraftDir, "lastLogin")).createNewFile();
this.lastLogin = new SettingsFile((new File(minecraftDir, "lastLogin")));
this.lastLogin.load();
}
catch(Exception e)
{
e.printStackTrace();
}
this.settings = settings;
this.server = server;
this.backgroundManager = new BackgroundManager(server + settings.getSetting("net.melbvicmc.launcher.mlbl"));
this.mcDir = minecraftDir;
this.optionsDialog = new MinecraftOptionsDialog(this);
loadJFrameLayout();
}
Macからのログは次のとおりです。ログ
アプリケーションはここで見つけることができます:ランチャーダウンロード