Error running Eclipse SmartHome Designer on Mac OS X Sierra

I have tried several versions of Eclipse SmartHome Designer (v0.7, v0.8 and latest snapshot, all on https://github.com/eclipse/smarthome/blob/master/docs/documentation/community/downloads.md#designer-builds ), and it keeps crashing with the same problem. This is on Mac OS X 10.12.1 (Sierra).

I think this is the relevant line:

java.lang.IllegalStateException: The platform metadata area could not be written: /private/var/folders/5p/6wgnpf0s4891_m8vqx7mw5mm0000gp/T/AppTranslocation/596CDEE7-901A-40D7-A319-C56EF20B70CF/d/Eclipse SmartHome Designer.app/Contents/MacOS/workspace/.metadata.  
By default the platform writes its content under the current working directory when the platform is launched.  Use the -data parameter to specify a different content area for the platform.

The site didn’t let me upload, so I have uploaded the full log for download here: http://www.sillyfrog.com/stuff/1480803350089.log?attredirects=0&d=1

I have just installed the latest JDK, and this runs OpenHAB OK. ie:

$ java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

I have also attempted to pass through an alternative -data option using the following (and a number of variants):

$ open 'Eclipse SmartHome Designer 2.app' --args '-data=content'

But they all come up with the error:

Alert
The SmartHome-Designer executable launcher was unable to locate its
companion shared library.

Is there something else I should be doing to make this work?

Thanks for your help.

Are you running it from the Downloads directory? Have you tried moving it to Applications before opening it? Apple has made the process sandboxing much more aggressive in Sierra for downloaded apps, and the path in the error message sounds a lot like some sandbox container

3 Likes

Indeed I am, and that’s what it was… Very weird - I have run lots of other things from the Downloads directory with out issue in the past.

But it’s working now, thanks for your help!

1 Like

Hi guys,

I’m trying to get my Easybulb lights running with openHAB and in the next step with the Amazon Echo. As an initial step I need to get the Eclipse SmartHome Designer running on my iMac (Mac OS Sierra running on it). Therefore I downloaded and installed the “jdk-8u111-macosx-x64” and the “jre-8u111-macosx-x64”. First one is for getting the OpenHAB2 running, which works fine. Second one is , as far as I understood, needed for the Eclipse SmartHome App.

Right now, I have the issue that the Eclipse app is not starting up with almost the same error desrcibed from sillyfrog:

!SESSION 2016-12-29 12:37:53.800 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_111
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=de_DE
Command-line arguments: -os macosx -ws cocoa -arch x86_64

!ENTRY org.eclipse.core.runtime 4 0 2016-12-29 12:37:54.480
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.core.runtime [2]
Unresolved requirement: Require-Bundle: javax.annotation; bundle-version=“1.1.0”; visibility:=“reexport”; resolution:=“optional"
Unresolved requirement: Require-Bundle: javax.inject; bundle-version=“1.0.0”; visibility:=“reexport”; resolution:=“optional"
Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version=”[3.6.100,4.0.0)”; visibility:=“reexport”

at org.eclipse.osgi.container.Module.start(Module.java:434)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
at org.eclipse.osgi.container.SystemModule.startWorker(SystemModule.java:242)
at org.eclipse.osgi.container.Module.doStart(Module.java:571)
at org.eclipse.osgi.container.Module.start(Module.java:439)
at org.eclipse.osgi.container.SystemModule.start(SystemModule.java:172)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:393)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:412)
at org.eclipse.osgi.launch.Equinox.start(Equinox.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:320)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:232)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)

and

!ENTRY org.eclipse.osgi 4 0 2016-12-29 12:38:08.072
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: The platform metadata area could not be written: /private/var/folders/x_/y5dfxwpn00318lwnc9wfbb640000gp/T/AppTranslocation/9FE66F3F-4908-4E05-9C46-14EEF43323DD/d/Eclipse SmartHome Designer.app/Contents/MacOS/workspace/.metadata. By default the platform writes its content
under the current working directory when the platform is launched. Use the -data parameter to
specify a different content area for the platform.
at org.eclipse.core.internal.runtime.DataArea.assertLocationInitialized(DataArea.java:61)
at org.eclipse.core.internal.runtime.DataArea.getStateLocation(DataArea.java:129)
at org.eclipse.core.internal.preferences.InstancePreferences.getBaseLocation(InstancePreferences.java:44)
at org.eclipse.core.internal.preferences.InstancePreferences.initializeChildren(InstancePreferences.java:199)
at org.eclipse.core.internal.preferences.InstancePreferences.(InstancePreferences.java:59)
at org.eclipse.core.internal.preferences.InstancePreferences.internalCreate(InstancePreferences.java:209)
at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:391)
at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:379)
at org.eclipse.core.internal.preferences.PreferencesService.createNode(PreferencesService.java:389)
at org.eclipse.core.internal.preferences.RootPreferences.getChild(RootPreferences.java:63)
at org.eclipse.core.internal.preferences.RootPreferences.getNode(RootPreferences.java:101)
at org.eclipse.core.internal.preferences.RootPreferences.node(RootPreferences.java:90)
at org.eclipse.core.internal.preferences.AbstractScope.getNode(AbstractScope.java:38)
at org.eclipse.core.runtime.preferences.InstanceScope.getNode(InstanceScope.java:80)
at org.eclipse.ui.preferences.ScopedPreferenceStore.getStorePreferences(ScopedPreferenceStore.java:244)
at org.eclipse.ui.preferences.ScopedPreferenceStore.(ScopedPreferenceStore.java:133)
at org.eclipse.ui.plugin.AbstractUIPlugin.getPreferenceStore(AbstractUIPlugin.java:285)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:593)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.smarthome.designer.ui.internal.application.Application.start(Application.java:32)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)

I googled about this issue, but found not really a solution for this or I did not understand fully the handling of this issue.

As I understand the two exceptions:

First one says that there some bundles requires !? Where or how to get them?

Second exception tells the same like sillyfrog described. The sandboxing topic…

Additional information:
I do not have the Eclipse SmartHome in the download folder.

Any suggestions what to do and what more infos are neede to have a closer look at this problem?

BR

McSaesh

Hi,

You mentioned that you are not running it from the Downloads folder, but is it in the Applications folder? I would suggest that as a first test as I found that was the only way for things to work for me.

Cheers.

Hi,

thanks for this hint again. This worked fine for me the app is starting now…Seems really that there is need for copying this file directly into the app folder and not only in a separate created folder…

BR

McSaesh

Hi, I am having a similar problem.
I have the eclipse designer in the Applications folder, but it fails after the splash screen.
It always shows this message:

See the log file
/Applications/Eclipse SmartHome Designer.app/Contents/Eclipse/configuration/1485886615495.log.

here is the first part of the log, if it helps:
!SESSION 2017-01-31 18:16:55.023 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_65
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_GB
Command-line arguments: -os macosx -ws cocoa -arch x86_64

!ENTRY org.eclipse.smarthome.designer.core 4 0 2017-01-31 18:16:56.848
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.smarthome.designer.core [220]
Unresolved requirement: Import-Package: org.eclipse.smarthome.config.core
-> Export-Package: org.eclipse.smarthome.config.core; bundle-version=“0.8.0”; bundle-symbolic-name=“org.eclipse.smarthome.config.core”; version=“0.0.0"
org.eclipse.smarthome.config.core [213]
Unresolved requirement: Import-Package: org.eclipse.smarthome.core.common
-> Export-Package: org.eclipse.smarthome.core.common; bundle-version=“0.8.0”; bundle-symbolic-name=“org.eclipse.smarthome.core”; version=“0.0.0"
org.eclipse.smarthome.core [214]
Unresolved requirement: Require-Capability: osgi.ee; filter:=”(&(osgi.ee=JavaSE)(version=1.7))”

at org.eclipse.osgi.container.Module.start(Module.java:434)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.smarthome.designer.ui 4 0 2017-01-31 18:16:56.855
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.smarthome.designer.ui [221]
Unresolved requirement: Import-Package: org.eclipse.smarthome.config.core
-> Export-Package: org.eclipse.smarthome.config.core; bundle-version=“0.8.0”; bundle-symbolic-name=“org.eclipse.smarthome.config.core”; version=“0.0.0"
org.eclipse.smarthome.config.core [213]
Unresolved requirement: Import-Package: org.eclipse.smarthome.core.common
-> Export-Package: org.eclipse.smarthome.core.common; bundle-version=“0.8.0”; bundle-symbolic-name=“org.eclipse.smarthome.core”; version=“0.0.0"
org.eclipse.smarthome.core [214]
Unresolved requirement: Require-Capability: osgi.ee; filter:=”(&(osgi.ee=JavaSE)(version=1.7))”

at org.eclipse.osgi.container.Module.start(Module.java:434)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.smarthome.config.core 4 0 2017-01-31 18:16:56.888
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.smarthome.config.core [213]
Unresolved requirement: Import-Package: org.eclipse.smarthome.core.common
-> Export-Package: org.eclipse.smarthome.core.common; bundle-version=“0.8.0”; bundle-symbolic-name=“org.eclipse.smarthome.core”; version=“0.0.0"
org.eclipse.smarthome.core [214]
Unresolved requirement: Require-Capability: osgi.ee; filter:=”(&(osgi.ee=JavaSE)(version=1.7))"

at org.eclipse.osgi.container.Module.start(Module.java:434)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.smarthome.model.item 4 0 2017-01-31 18:16:56.896
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.smarthome.model.item [226]
Unresolved requirement: Import-Package: org.eclipse.smarthome.core.autoupdate
-> Export-Package: org.eclipse.smarthome.core.autoupdate; bundle-version=“0.8.0”; bundle-symbolic-name=“org.eclipse.smarthome.core.autoupdate”; version="0.0.0"
org.eclipse.smart

Finally found this which solved my problem and application started. Actually I had two obstacles getting Eclipse work on macos Sierra. First topic was error message that java6 is required, but actually you should install at least java7 sdk or better java8 sdk. And second problem when getting the error message “!MESSAGE Application error stack 1” was that I tried to run application from Downloads directory. After I moved it to Applications directory, eclipse starts and works fine. Hope this helps others.

It seems I have the same kind of problem as described above.

I have java installed:

java -version
java version "1.8.0_121"
Java™ SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot™ 64-Bit Server VM (build 25.121-b13, mixed mode)

And I’m running the latest macOS Sierra 10.12.3

I downloaded the latest ESHD snapshot (stable gives me the same issue so I tried sticking with snapshot, as I’m running a snapshot version of OH2 as well) from this page.

Then, when I run ESHD, it pops up with “An error has occurred”. When I look at the log, it gives me

!ENTRY org.eclipse.core.runtime 4 0 2017-02-05 13:40:43.390
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.core.runtime [2]
Unresolved requirement: Require-Bundle: javax.annotation; bundle-version=“1.1.0”; visibility:=“reexport”; resolution:=“optional"
Unresolved requirement: Require-Bundle: javax.inject; bundle-version=“1.0.0”; visibility:=“reexport”; resolution:=“optional"
Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version=”[3.6.100,4.0.0)”; visibility:=“reexport”

and lot’s of bundle is already installed messages:

!ENTRY org.eclipse.update.configurator 4 0 2017-02-05 13:40:45.162
!MESSAGE Could not install bundle plugins/ch.qos.logback.classic_1.0.7.v20121108-1250.jar A bundle is already installed with the name “ch.qos.logback.classic” and version “1.0.7.v20121108-1250”

What exactly did you mean when you said the application has to be run from the applications folder? So I download the zip and click it. The extracted contents gives me an Eclipse SmartHome Designer.app file which I drag to the Applications folder. Then I open it with the crtl-button pressed (the first time) so I can override the security warning. Is that what you did an what worked?

Is there any state I can and should remove like the User’ .eclipse folder?

That’s exactly the right way. Some people try to start it directly from the Downloads folder, and that will not work.

The version which is shown when entering “java -version” is nearly always the Java RE (JRE). But you need the Java Development Kit (JDK). Have you installed it? If not, download and install it from http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2 Likes

Thank you Stefan for taking the time to help me.

As far as I understand I’m already running a Java Development Kit version, java -version on my mac shows that a JDK is the default, right?
java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

I also believe I have only JDK’s installed:
/usr/libexec/java_home -V Matching Java Virtual Machines (6): 9, x86_64: "Java SE 9-ea" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home 1.8.0_121, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home 1.8.0_111, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home 1.8.0_101, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home 1.8.0_66, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home 1.8.0_65, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home

and my JAVA_HOME for my current user points to /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

which is set properly because of export JAVA_HOME=/usr/libexec/java_home -v 1.8 being in my ~/.bash_profile

I’m not convinced my java version is the problem here and I honestly don’t know what to do next. Is there a way in which I can force the ESHD app to use a specific java binary for startup? Then I would be able to rule out for sure that the java version is the problem.

I fixed it!

The installation of Java 9 was the problem, as /usr/libexec/java_home gave me
/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home which is probably what an application uses (in my terminal this was different).

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-9.jdk solved it.