|
|
|
@ -722,26 +722,6 @@ public final class yacy {
|
|
|
|
|
|
|
|
|
|
// case for the application path if started normally with a jre command
|
|
|
|
|
File applicationRoot = new File(System.getProperty("user.dir").replace('\\', '/'));
|
|
|
|
|
|
|
|
|
|
// try to find the application root path within a Mac application
|
|
|
|
|
// call com.apple.eio.FileManager.getPathToApplicationBundle();
|
|
|
|
|
if (!OS.isWindows) { // prevent that YaCy always starts with an exception message on none Apple systems
|
|
|
|
|
try {
|
|
|
|
|
// these methods will cause a warning: remove them with --illegal-access=permit
|
|
|
|
|
final Class<?> comAppleEioFileManagerClass = Class.forName("com.apple.eio.FileManager");
|
|
|
|
|
final Method getPathToApplicationBundleMethod = ClassProvider.getStaticMethod(comAppleEioFileManagerClass, "getPathToApplicationBundle", null);
|
|
|
|
|
final String apppath = (String) getPathToApplicationBundleMethod.invoke(null);
|
|
|
|
|
System.out.println("PathToApplicationBundle = " + apppath); // PathToApplicationBundle = /Users/admin/git/rc1/build/YaCy.app
|
|
|
|
|
if (apppath != null && apppath.endsWith(".app")) {
|
|
|
|
|
// modify the applicationRoot path to within the app file
|
|
|
|
|
applicationRoot = new File(apppath + "/Contents");
|
|
|
|
|
System.setProperty("user.dir", applicationRoot.getAbsolutePath()); // required since nasty code elswhere is using it
|
|
|
|
|
System.setProperty("user.home", applicationRoot.getAbsolutePath()); // well
|
|
|
|
|
}
|
|
|
|
|
} catch (ClassNotFoundException | InvocationTargetException | IllegalAccessException | IllegalArgumentException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
File dataRoot = applicationRoot;
|
|
|
|
|
//System.out.println("args.length=" + args.length);
|
|
|
|
|
//System.out.print("args=["); for (int i = 0; i < args.length; i++) System.out.print(args[i] + ", "); System.out.println("]");
|
|
|
|
|