Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 328671

Summary: Eclipse will not run with soylatte16-amd64-1.0.3 JVM
Product: [Eclipse Project] JDT Reporter: Frank Rimlinger <frankrimlinger>
Component: DebugAssignee: JDT-Debug-Inbox <jdt-debug-inbox>
Status: RESOLVED WONTFIX QA Contact:
Severity: enhancement    
Priority: P3 CC: darin.eclipse, grant_gayed, Michael_Rennie, pwebster, remy.suen
Version: 3.5.1   
Target Milestone: ---   
Hardware: Macintosh   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Frank Rimlinger CLA 2010-10-26 00:47:17 EDT
Build Identifier: Build id: 20090920-1017

Switched to open-source JVM  Soylatte on MacOSX, as the vendor provided JVM has been deprecated.  When launching an application inside Eclipse with Soylatte, get the warning java.lang.UnsatisfiedLinkError: no swt-cocoa-3555 or swt-cocoa in swt.library.path, java.library.path or the jar file.  Please integrate Soylatte with 64bit  cocoa and Eclipse.

Reproducible: Always

Steps to Reproduce:
1. Install the SoyLatte JRE, available at http://landonf.bikemonkey.org/static/soylatte/
2. Launch an application inside Eclipse.
Comment 1 Remy Suen CLA 2010-10-26 06:03:56 EDT
(In reply to comment #0)
> 2. Launch an application inside Eclipse.

What kind of application are we talking about? Are you launching another Eclipse instance or a pure SWT application?
Comment 2 Paul Webster CLA 2010-10-26 07:42:30 EDT
To JDT/Debug for comment on launching.

PW
Comment 3 Paul Webster CLA 2010-10-26 08:19:35 EDT
After your launch has failed, could you please go to the Debug view, select the terminated process, right click and pick Properties.  Then cut&paste the command like eclipse generated to run your app.

PW
Comment 4 Frank Rimlinger CLA 2010-10-26 10:43:16 EDT
	Here is the command:

 /Users/franklocal/Desktop/soylatte16-amd64-1.0.3/bin/java -XstartOnFirstThread -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:52816 -Dfile.encoding=MacRoman -Xbootclasspath/p:/Users/franklocal/Desktop/eclipse/plugins/org.eclipse.jdt.debug_3.5.0.v20090526/jdi.jar -classpath /Users/franklocal/Desktop/eclipse/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar org.eclipse.equinox.launcher.Main -application testProject.application -data /Users/franklocal/jpf/../runtime-testProject.application -configuration file:/Users/franklocal/jpf/.metadata/.plugins/org.eclipse.pde.core/testProject.application/ -dev file:/Users/franklocal/jpf/.metadata/.plugins/org.eclipse.pde.core/testProject.application/dev.properties -os macosx -ws cocoa -arch x86_64 -nl en_US

Console message:
Warning: The Mac OS -XstartOnFirstThread: is currently unsupported

Error message:

!SESSION 2010-10-26 09:21:44.076 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_03-p3
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments:  -application testProject.application
Command-line arguments:  -application testProject.application -data /Users/franklocal/jpf/../runtime-testProject.application -dev file:/Users/franklocal/jpf/.metadata/.plugins/org.eclipse.pde.core/testProject.application/dev.properties -os macosx -ws cocoa -arch x86_64

!ENTRY org.eclipse.osgi 4 0 2010-10-26 09:21:45.128
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: no swt-cocoa-3557 or swt-cocoa in swt.library.path, java.library.path or the jar file
	at org.eclipse.swt.internal.Library.loadLibrary(Library.java:254)
	at org.eclipse.swt.internal.Library.loadLibrary(Library.java:159)
	at org.eclipse.swt.internal.C.<clinit>(C.java:21)
	at org.eclipse.swt.internal.cocoa.NSThread.isMainThread(NSThread.java:33)
	at org.eclipse.swt.graphics.Device.<init>(Device.java:116)
	at org.eclipse.swt.widgets.Display.<init>(Display.java:628)
	at org.eclipse.swt.widgets.Display.<init>(Display.java:619)
	at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:532)
	at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
	at testproject.Application.start(Application.java:18)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
Comment 5 Frank Rimlinger CLA 2010-10-26 10:45:29 EDT
The testProject is just the out-of-the-box HelloRCP project.
Comment 6 Darin Wright CLA 2010-10-27 11:52:54 EDT
Grant, do you know if there is a way to get this to work manually (i.e. adding the SWT libraries to the library load path)?
Comment 7 Grant Gayed CLA 2010-10-27 12:52:56 EDT
The libraries can either go somewhere on the existing path, or can be put elsewhere and pointed at by setting java property swt.library.path to the full path.  There isn't an obvious reason why these wouldn't be found with a dfferent JRE though; maybe they are being found but are failing to load?

SWT had to make a change to enable loading of its libraries by OpenJDK ( https://bugs.eclipse.org/bugs/show_bug.cgi?id=276564 ) because it was looking for libraries with extension .dylib instead of .jnilib.  If Soylatte is doing something similar then it should also be helped by this fix, as long as the swt version is >= 3.5.

Speaking of OpenJDK, if you're just looking for a non-Apple JRE to use then this may provide a workaround in the meantime.
Comment 8 Frank Rimlinger CLA 2010-10-27 13:23:11 EDT
I guess the point about SoyLatte is that it has a pre-built image for Mac OS X.  I found the website http://landonf.bikemonkey.org/code/java/SoyLatte_Meets_OpenJDK.20080819.html.  There doesn't seem to be a pre-built mac image for OpenJDK here.  I am certainly willing to try and roll my own, but if there are other references for pre-built images I would like to try them first.
Comment 9 Michael Rennie CLA 2013-08-13 00:10:19 EDT
Soylatte is not a supported JRE for Eclipse and also has been taken over by OpenJDK. Closing.