X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FLauncher.java;fp=src%2Fjalview%2Fbin%2FLauncher.java;h=246f0a2370dce51c2aed18db50d36fb00325e6b8;hb=4ce97aceb541e3afaed87cdc444d2f52d1ebc944;hp=f29e0a1b4950b689eaae10ef2b1e5e6aa04bc8a7;hpb=0bcfbb4f5f6c7080c8e0d1d35bf00597343dc165;p=jalview.git diff --git a/src/jalview/bin/Launcher.java b/src/jalview/bin/Launcher.java index f29e0a1..246f0a2 100644 --- a/src/jalview/bin/Launcher.java +++ b/src/jalview/bin/Launcher.java @@ -53,6 +53,29 @@ public class Launcher private final static String dockIconPath = ChannelProperties .getProperty("logo.512"); + private static boolean checkJVMSymlink(String testBin) + { + File testBinFile = new File(testBin); + if (!testBinFile.exists()) + { + return false; + } + File targetFile = null; + try + { + targetFile = testBinFile.getCanonicalFile(); + } catch (IOException e) + { + return false; + } + if (targetFile != null && ("java".equals(targetFile.getName()) + || "java.exe".equals(targetFile.getName()))) + { + return true; + } + return false; + } + /** * main method for jalview.bin.Launcher. This restarts the same JRE's JVM with * the same arguments but with memory adjusted based on extracted -jvmmempc @@ -70,9 +93,22 @@ public class Launcher + ") may lead to problems. This installation of Jalview should be used with Java " + LaunchUtils.getJavaCompileVersion() + "."); } - - final String javaBin = System.getProperty("java.home") + File.separator - + "bin" + File.separator + "java"; + final String appName = ChannelProperties.getProperty("app_name"); + final String javaBinDir = System.getProperty("java.home") + + File.separator + "bin" + File.separator; + String javaBin = null; + if (javaBin == null && checkJVMSymlink(javaBinDir + appName)) + { + javaBin = javaBinDir + appName; + } + if (javaBin == null && checkJVMSymlink(javaBinDir + "Jalview")) + { + javaBin = javaBinDir + "Jalview"; + } + if (javaBin == null) + { + javaBin = "java"; + } List command = new ArrayList<>(); command.add(javaBin); @@ -232,14 +268,13 @@ public class Launcher { // -Xdock:name=... doesn't actually work :( // Leaving it in in case it gets fixed - command.add( - "-Xdock:name=" + ChannelProperties.getProperty("app_name")); + command.add("-Xdock:name=" + appName); // this launches WITHOUT an icon in the macOS dock. Could be useful for // getdown? // command.add("-Dapple.awt.UIElement=false"); // This also does not work for the dock command.add("-Dcom.apple.mrj.application.apple.menu.about.name=" - + ChannelProperties.getProperty("app_name")); + + appName); } }