When not using Apple's Java (which nobody should be anymore as it's now discontinued and stopped at Java 1.6), the macosx plugin no longer works, because the com.apple.eawt classes aren't found.
Given that the macosx plugin doesn't appear to do much in the way of making the UI look "more like a Mac app", it probably should just be removed.
2017-10-26 15:27:07,848 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - #############################################################################################################
2017-10-26 15:27:07,855 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - # Starting SQuirreL SQL Client snapshot-20171018_2131 at 26/10/17, 3:27 pm
2017-10-26 15:27:07,855 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - #############################################################################################################
2017-10-26 15:27:07,863 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - SQuirreL SQL Client snapshot-20171018_2131 started: Thu Oct 26 15:27:07 AEDT 2017
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - Copyright (c) 2001-2017
Colin Bell, Gerd Wagner, Rob Manning and others
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.vendor: Azul Systems, Inc.
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.version: 9.0.0.15
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.runtime.name: OpenJDK Runtime Environment
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - os.name: Mac OS X
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - os.version: 10.12.6
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - os.arch: x86_64
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - user.dir: /Applications/SQuirreLSQL.app/Contents/Resources/Java
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - user.home: /Users/josh.graham
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.home: /Library/Java/JavaVirtualMachines/zulu-9.0.0.15.jdk/Contents/Home
2017-10-26 15:27:07,864 [main] INFO net.sourceforge.squirrel_sql.client.SquirrelLoggerFactory - java.class.path: /Applications/SQuirreLSQL.app/Contents/Resources/Java/squirrel-sql.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/RText.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/antlr.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/asm-attrs.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/asm.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/autocomplete.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/axis-jaxrpc.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/axis-saaj.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/axis-wsdl4j.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/axis.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/cglib.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/common.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/commons-cli.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/commons-codec.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/commons-collections-3.2.1.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/commons-discovery.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/commons-httpclient.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/commons-lang.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/commons-logging.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/core.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/dom4j.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/forms.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/hibernate-annotations.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/hibernate-commons-annotations.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/hibernate-entitymanager.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/hibernate.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/icu4j.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/jackson-annotations-2.6.3.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/jackson-core-2.6.3.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/jackson-databind-2.6.3.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/javahelp.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/jcommon.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/jfreechart.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/jide-oss.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/jmeld.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/log4j.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/markdowngeneratorJava1_6.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/nanoxml.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/org.eclipse.equinox.common.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/osgi.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/poi-ooxml-schemas.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/poi-ooxml.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/poi.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/rstaui.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/rsyntaxtextarea.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/spring-beans.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/spring-context-support.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/spring-context.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/spring-core.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/stringtemplate.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/swing-worker.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/treetable.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/versioncheck.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/x86.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/xml-apis.jar:/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/xmlbeans.jar
2017-10-26 15:27:10,253 [AWT-EventQueue-1] ERROR net.sourceforge.squirrel_sql.client.gui.SquirrelSplashScreen - No SplashScreen availabe
java.lang.NullPointerException: No SplashScreen availabe. Please check VM parameter -splash:
at net.sourceforge.squirrel_sql.client.gui.SquirrelSplashScreen.<init>(SquirrelSplashScreen.java:41)
at net.sourceforge.squirrel_sql.client.Application.startup(Application.java:219)
at net.sourceforge.squirrel_sql.client.Main$2.run(Main.java:118)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at net.sourceforge.squirrel_sql.client.Main$1.dispatchEvent(Main.java:99)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
2017-10-26 15:27:12,360 [AWT-EventQueue-1] ERROR net.sourceforge.squirrel_sql.plugins.macosx.MacOSPlugin - initialize: encountered exception: com.apple.eawt.Application.addApplicationListener(com.apple.eawt.ApplicationListener)
java.lang.NoSuchMethodException: com.apple.eawt.Application.addApplicationListener(com.apple.eawt.ApplicationListener)
at java.base/java.lang.Class.getMethod(Class.java:2065)
at net.sourceforge.squirrel_sql.plugins.macosx.MacOSPlugin.initialize(MacOSPlugin.java:132)
at net.sourceforge.squirrel_sql.client.plugin.PluginManager.initializePlugins(PluginManager.java:575)
at net.sourceforge.squirrel_sql.client.Application.executeStartupTasks(Application.java:788)
at net.sourceforge.squirrel_sql.client.Application.startup(Application.java:222)
at net.sourceforge.squirrel_sql.client.Main$2.run(Main.java:118)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at net.sourceforge.squirrel_sql.client.Main$1.dispatchEvent(Main.java:99)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
2017-10-26 15:27:12,363 [AWT-EventQueue-1] ERROR net.sourceforge.squirrel_sql.client.plugin.PluginManager - Error occurred initializing plugin: macosx
java.lang.RuntimeException: java.lang.NoSuchMethodException: com.apple.eawt.Application.addApplicationListener(com.apple.eawt.ApplicationListener)
at net.sourceforge.squirrel_sql.plugins.macosx.MacOSPlugin.initialize(MacOSPlugin.java:151)
at net.sourceforge.squirrel_sql.client.plugin.PluginManager.initializePlugins(PluginManager.java:575)
at net.sourceforge.squirrel_sql.client.Application.executeStartupTasks(Application.java:788)
at net.sourceforge.squirrel_sql.client.Application.startup(Application.java:222)
at net.sourceforge.squirrel_sql.client.Main$2.run(Main.java:118)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at net.sourceforge.squirrel_sql.client.Main$1.dispatchEvent(Main.java:99)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.NoSuchMethodException: com.apple.eawt.Application.addApplicationListener(com.apple.eawt.ApplicationListener)
at java.base/java.lang.Class.getMethod(Class.java:2065)
at net.sourceforge.squirrel_sql.plugins.macosx.MacOSPlugin.initialize(MacOSPlugin.java:132)
... 19 more
2017-10-26 15:27:12,364 [AWT-EventQueue-1] ERROR net.sourceforge.squirrel_sql.client.Application - Error occurred initializing plugin: macosx
java.lang.RuntimeException: java.lang.NoSuchMethodException: com.apple.eawt.Application.addApplicationListener(com.apple.eawt.ApplicationListener)
at net.sourceforge.squirrel_sql.plugins.macosx.MacOSPlugin.initialize(MacOSPlugin.java:151)
at net.sourceforge.squirrel_sql.client.plugin.PluginManager.initializePlugins(PluginManager.java:575)
at net.sourceforge.squirrel_sql.client.Application.executeStartupTasks(Application.java:788)
at net.sourceforge.squirrel_sql.client.Application.startup(Application.java:222)
at net.sourceforge.squirrel_sql.client.Main$2.run(Main.java:118)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.desktop/java.awt.EventQueue.access$500(EventQueue.java:97)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:717)
at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:711)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:89)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at net.sourceforge.squirrel_sql.client.Main$1.dispatchEvent(Main.java:99)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:199)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.NoSuchMethodException: com.apple.eawt.Application.addApplicationListener(com.apple.eawt.ApplicationListener)
at java.base/java.lang.Class.getMethod(Class.java:2065)
at net.sourceforge.squirrel_sql.plugins.macosx.MacOSPlugin.initialize(MacOSPlugin.java:132)
... 19 more
2017-10-26 15:27:20,608 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.plugins.dataimport.prefs.PreferencesManager - prefs.xml not found - will be created
2017-10-26 15:27:20,719 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.plugins.refactoring.prefs.RefactoringPreferencesManager - prefs.xml not found - will be created
2017-10-26 15:27:20,871 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.plugin.PluginQueryTokenizerPreferencesManager - prefs.xml not found - will be created
2017-10-26 15:27:20,888 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin macosx created in 0 ms, loaded in 0 ms, initialized in -1,508,992,032,355 ms, total -1,508,992,032,355 ms.
2017-10-26 15:27:20,889 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin sqlreplace created in 3 ms, loaded in 0 ms, initialized in 4 ms, total 7 ms.
2017-10-26 15:27:20,889 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin sqlbookmark created in 1 ms, loaded in 0 ms, initialized in 114 ms, total 115 ms.
2017-10-26 15:27:20,890 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin h2 created in 3 ms, loaded in 1 ms, initialized in 0 ms, total 4 ms.
2017-10-26 15:27:20,891 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin dataimport created in 1 ms, loaded in 2 ms, initialized in 4 ms, total 7 ms.
2017-10-26 15:27:20,892 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin dbcopy created in 1 ms, loaded in 0 ms, initialized in 44 ms, total 45 ms.
2017-10-26 15:27:20,893 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin graph created in 1 ms, loaded in 0 ms, initialized in 15 ms, total 16 ms.
2017-10-26 15:27:20,894 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin smarttools created in 7 ms, loaded in 0 ms, initialized in 0 ms, total 7 ms.
2017-10-26 15:27:20,895 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin sqlscript created in 1 ms, loaded in 0 ms, initialized in 32 ms, total 33 ms.
2017-10-26 15:27:20,896 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin sessionscript created in 1 ms, loaded in 0 ms, initialized in 6 ms, total 7 ms.
2017-10-26 15:27:20,897 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin refactoring created in 5 ms, loaded in 0 ms, initialized in 13 ms, total 18 ms.
2017-10-26 15:27:20,898 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin sqlparam created in 0 ms, loaded in 1 ms, initialized in 2 ms, total 3 ms.
2017-10-26 15:27:20,899 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin codecompletion created in 0 ms, loaded in 1 ms, initialized in 30 ms, total 31 ms.
2017-10-26 15:27:20,900 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin syntax created in 5 ms, loaded in 0 ms, initialized in 87 ms, total 92 ms.
2017-10-26 15:27:20,901 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin mysql created in 5 ms, loaded in 76 ms, initialized in 36 ms, total 117 ms.
2017-10-26 15:27:20,902 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin dbdiff created in 1 ms, loaded in 0 ms, initialized in 6 ms, total 7 ms.
2017-10-26 15:27:20,903 [AWT-EventQueue-1] INFO net.sourceforge.squirrel_sql.client.Application - Plugin postgres created in 9 ms, loaded in 8 ms, initialized in 7 ms, total 24 ms.
The alternative is to check for the existence of Apple Java on the machine, and if present, append the
ui.jarto the boot classpath.(It also seems like
squirrel-sql.shis doing macOS things outside ofif $macosxblocks and probably should not.)This can be done in
squirrel-sql.shlike so:This means that regardless of the Java version currently active, the latest installed Apple Java (max Java 1.6) will at least pick up Apple's
ui.jar.With the above change to my
squirrel-sql.sh, the log reads as follows (note the Zulu 1.8 Java version):Comment copied from bug #1319
Please see
https://bugs.openjdk.java.net/browse/JDK-8160437
Perhaps someone who has access to a Mac could try out the suggested parameter
-XaddExports:java.desktop/com.apple.eawt=ALL-UNNAMED
and let me know how to integrate it in the launch script squirrel-sql.sh (without breaking the compatibility with other Java versions.)
Thanks in advance
Gerd