Bug #3369
closedKepler will not start (OS X 10.52) as JavaApplicationStub is not executable
0%
Description
As installed, I could not run Kepler at all. Nothing in the GUI indicated why it didn't start, but a permission error is generated to the console. I think the Kepler.app/Contents/MacOS/JavaApplicationStub needs to be executable. As installed it was not. When I set the permissons to executable, it worked. In summary the work-arround was:
sudo chmod +x /Applications/Kepler/Kepler.app/Contents/MacOS/JavaApplicationStub
I am using:
Mac OsX Leopard 10.5.2 on an (Intel based) MacBook Pro.
Java version "1.5.0_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237)
Java HotSpot(TM) Client VM (build 1.5.0_13-119, mixed mode, sharing)
Associated error reported as a console message:
com.apple.launchd71 ([0x0-0x97097].Kepler989)
posix_spawnp("/Applications/Kepler/Kepler.app/Contents/MacOS/JavaApplicationStub", ...): Permission denied
As a side note (and possible avoiding future problems), I wanted to pass along some of the information I found while investigating this. I ran into all kinds of information on OS X "system specific" java dependencies. When applied to OS X, "write once, run everywhere" seems to have left out a piece in the middle - "package separately for every version and every system". I don't know how the Kepler bundle for mac is created, but the JavaApplicationStub file appears to be copied from the OS by the Jar Bundler application, and this can be different on different versions of mac, especially between PPC and INTEL versions. What that means is not clear to me, but it seems to have caused problems in the past for other people. Using Eclipse to diff my system framework version and the one provided with Kepler indicated small differences between the two binary files, unfortunately none in clear ascii-translatable regions.
There is also a "JavaApplicationStub64" that complicates things going forward. A web page explaining some of the background is http://developer.apple.com/java/javaleopard.html. I have never seen such a short Google listing as generated for a single term as for "JavaApplicationStub64". 17 hits, with only 9 in english.
Thanks for the interesting application. I am looking forward to working with this.
Related issues
Updated by Dan Higgins over 16 years ago
At least at some point in the past, I ran into this problem and had added a task to the installer to make the JavaApplicationStub executable. Also, I did NOT see this problem when I installed the 1.0 release of Kepler on a Mac similarly configured, so maybe this is not a universal problem.
Dan Higgins
Updated by Chad Berkley over 16 years ago
I just tried to reproduce this on my mac, but couldn't. I'll make a note to change the JavaApplicationStub to executable the next time we build the installer.
Updated by Stuart Jefferys over 16 years ago
I figured out what is at the root of this issue. I use a CASE-SENSITIVE file system. I bet the test mac systems are not. I uninstalled and reinstalled Kepler, and payed more attention to the error messages. The installer can not find
"/Applications/Kepler-1.0.0/kepler.app/"
because the app should be
"Kepler.app".
This prevents cp from copying into the app bundle the following: Kepler/lib/libproj.0.dylib, libgeos_c.1.dylib, libgeos.2.dylib, libgdal.1.dylib, and libexpat.1.dylib. It also prevents chmod from working on Kepler/kepler.sh and Contents/MacOS/JavaApplicationStub, which caused the primary symptom.
Hopefully this is easy to fix.
Updated by Stuart Jefferys over 16 years ago
Actually, It seems as if the copy is OUT of the Kepler/lib directory, but either way, it didn't happen on my Mac. The ~/lib directory is empty. Thanks for lib/library_readme.txt file. Hopefully I have copied the needed libraries over manually. Everything SEEMS to work fine.
Updated by Chad Berkley over 15 years ago
Make sure this isn't happening for the release 2.0 installer.
Updated by Chad Berkley over 15 years ago
Fixed with the new installer code. The installer now makes sure that JavaApplicationStub is executable when it installs. The installer uses case-sensitive copying so hopefully the case-sensitive issues will not crop back up.