JAL-629 Test and fix --annotation --ssannotation args. Added a viewerType arg/subval...
[jalview.git] / src / jalview / bin / Launcher.java
index e13f2dd..dc42f8c 100644 (file)
  */
 package jalview.bin;
 
-import java.util.Locale;
-
 import java.io.File;
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 
 import jalview.util.ChannelProperties;
+import jalview.util.LaunchUtils;
 
 /**
  * A Launcher class for Jalview. This class is used to launch Jalview from the
@@ -62,6 +62,14 @@ public class Launcher
    */
   public static void main(String[] args)
   {
+    if (!LaunchUtils.checkJavaVersion())
+    {
+      System.err.println("WARNING - The Java version being used (Java "
+              + LaunchUtils.getJavaVersion()
+              + ") 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";
 
@@ -106,6 +114,23 @@ public class Launcher
       }
     }
 
+    // use saved preferences if no cmdline args
+    boolean useCustomisedSettings = LaunchUtils
+            .getBooleanUserPreference(MemorySetting.CUSTOMISED_SETTINGS);
+    if (useCustomisedSettings)
+    {
+      if (jvmmempc == null)
+      {
+        jvmmempc = LaunchUtils
+                .getUserPreference(MemorySetting.MEMORY_JVMMEMPC);
+      }
+      if (jvmmemmax == null)
+      {
+        jvmmemmax = LaunchUtils
+                .getUserPreference(MemorySetting.MEMORY_JVMMEMMAX);
+      }
+    }
+
     // add memory setting if not specified
     boolean memSet = false;
     boolean dockIcon = false;
@@ -156,6 +181,12 @@ public class Launcher
         // Leaving it in in case it gets fixed
         command.add(
                 "-Xdock:name=" + ChannelProperties.getProperty("app_name"));
+        // 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"));
       }
     }
 
@@ -183,6 +214,8 @@ public class Launcher
 
     if (Boolean.parseBoolean(System.getProperty("launcherstop", "false")))
     {
+      System.out.println(
+              "System property 'launcherstop' is set and not 'false'. Exiting.");
       System.exit(0);
     }
     try
@@ -227,8 +260,6 @@ public class Launcher
     {
       e.printStackTrace();
     }
-    // System.exit(0);
-
   }
 
 }