iterate-ch / cyberduck

Cyberduck is a libre FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure & OneDrive and OpenStack Swift file transfer client for Mac and Windows.
https://cyberduck.io/
GNU General Public License v3.0
3.35k stars 292 forks source link

Unable to load library 'rococoa' #3904

Closed cyberduck closed 14 years ago

cyberduck commented 15 years ago

0e004f3 created the issue

If I keep the Cyberduck app anywhere else but inside the applications folder it will launch.

cyberduck commented 15 years ago

@dkocher commented

A previous reporter posted the following stacktrace from the system.log.

01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]   [JavaAppLauncher Warning] Java application launched from PPC stub. Relaunching in 32-bit, and tagging sub-processes to prefer 32-bit with $JAVA_ARCH=i386.
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]   [LaunchRunner Error] ch.cyberduck.ui.cocoa.CDMainApplication.main(String[]) threw an exception:
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]   java.lang.UnsatisfiedLinkError: Unable to load library 'rococoa': dlopen(librococoa.dylib, 9): Library not loaded: @executable_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]     Referenced from: /Applications/Cyberduck.app/Contents/Resources/Java/librococoa.dylib
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]     Reason: image not found
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:164)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:237)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at com.sun.jna.Library$Handler.<init>(Library.java:140)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at com.sun.jna.Native.loadLibrary(Native.java:372)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at com.sun.jna.Native.loadLibrary(Native.java:357)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at org.rococoa.Foundation.<clinit>(Foundation.java:76)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at org.rococoa.Rococoa.create(Rococoa.java:59)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at org.rococoa.Rococoa.create(Rococoa.java:75)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at ch.cyberduck.ui.cocoa.foundation.NSAutoreleasePool.push(NSAutoreleasePool.java:14)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at ch.cyberduck.ui.cocoa.CDMainApplication.main(CDMainApplication.java:47)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at java.lang.reflect.Method.invoke(Method.java:597)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at apple.launcher.LaunchRunner.run(LaunchRunner.java:115)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:50)
01.11.09 13:07:43   [0x0-0xd30d3].ch.sudo.cyberduck[1246]       at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52)
cyberduck commented 15 years ago

@dkocher commented

Can you find any similar related output in the system.log (/Applications/Utilities/Console.app)?

cyberduck commented 15 years ago

@dkocher commented

Cyberduck will launch if the app is located anywhere else. For now I keep it on the desktop.

cyberduck commented 14 years ago

Richard Fairhurst commented

Same problem for me using Cyberduck 3.5.1 (10.5.8, 2.5GHz Core 2 Duo MBP). Moving it outside the Applications folder doesn't help. Console log as follows:

22/06/2010 11:47:01 [0x0-0x57057].ch.sudo.cyberduck[915] [JavaAppLauncher] A 64-bit JVM is available for 1.6.0 
22/06/2010 11:47:01 [0x0-0x57057].ch.sudo.cyberduck[915] [JavaAppLauncher] and it is the only version available 
22/06/2010 11:47:01 [0x0-0x57057].ch.sudo.cyberduck[915] [JavaAppLauncher] JVMArchs not found in Java dictionary 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915] [LaunchRunner Error] ch.cyberduck.ui.cocoa.MainApplication.main(String[]) threw an exception: 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915] java.lang.UnsatisfiedLinkError: Unable to load library 'rococoa': dlopen(librococoa.dylib, 9): Library not loaded: @executable_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]   Referenced from: /Users/richardfairhurst/Web/Cyberduck.app/Contents/Resources/Java/librococoa.dylib 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]   Reason: image not found 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:164) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:237) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at com.sun.jna.Library$Handler.<init>(Library.java:140) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at com.sun.jna.Native.loadLibrary(Native.java:372) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at com.sun.jna.Native.loadLibrary(Native.java:357) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at org.rococoa.Foundation.<clinit>(Foundation.java:76) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at org.rococoa.Rococoa.createClass(Rococoa.java:49) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at org.rococoa.cocoa.foundation.NSObject.<clinit>(NSObject.java:28) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at ch.cyberduck.ui.cocoa.MainApplication.main(MainApplication.java:48) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at java.lang.reflect.Method.invoke(Method.java:597) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at apple.launcher.LaunchRunner.run(LaunchRunner.java:115) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:50) 
22/06/2010 11:47:02 [0x0-0x57057].ch.sudo.cyberduck[915]  at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52) 

Quick Google suggests that http://stackoverflow.com/questions/1670859/wrapping-an-existing-application-with-jni may possibly have some relevant suggestions on fixing it.

cyberduck commented 14 years ago

@dkocher commented

Please check the folders /Library/Java/Extensions and ~/Library/Java/Extensions for thirdparty libraries installed.

cyberduck commented 14 years ago

0f1f518 commented

I suddenly have this problem after updating through the built-in menu today. I have no files in either Java/Extensions folder and it does not work even if I move Cyberduck to the Desktop.

From system.log:

[0x0-0x4c74c7].ch.sudo.cyberduck[6636]: [LaunchRunner Error] ch.cyberduck.ui.cocoa.MainApplication.main(String[]) threw an exception:
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]: java.lang.UnsatisfiedLinkError: Unable to load library 'rococoa': dlopen(librococoa.dylib, 9): Library not loaded: @executable_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:   Referenced from: /Applications/Cyberduck.app/Contents/Resources/Java/librococoa.dylib
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:   Reason: image not found
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:163)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:236)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at com.sun.jna.Library$Handler.<init>(Library.java:140)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at com.sun.jna.Native.loadLibrary(Native.java:379)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at com.sun.jna.Native.loadLibrary(Native.java:364)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at org.rococoa.Foundation.<clinit>(Foundation.java:76)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at org.rococoa.Rococoa.createClass(Rococoa.java:49)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at org.rococoa.cocoa.foundation.NSObject.<clinit>(NSObject.java:28)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at ch.cyberduck.ui.cocoa.MainApplication.main(MainApplication.java:47)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at java.lang.reflect.Method.invoke(Method.java:597)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at apple.launcher.LaunchRunner.run(LaunchRunner.java:115)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:50)
[0x0-0x4c74c7].ch.sudo.cyberduck[6636]:     at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52)
cyberduck commented 14 years ago

richard fairhurst commented

Just fixed this by changing the Java Application Runtime Settings in Java Preferences.

I previously had J2SE 5.0, J2SE 5.0 (64-bit), Java SE 6 (64-bit), J2SE 1.4.2, in that order. I have now swapped the first two around so that the 64-bit version is first, and therefore preferred. Cyberduck will now launch ok.

cyberduck commented 14 years ago

@dkocher commented

Replying to [comment:9 richard fairhurst]:

Just fixed this by changing the Java Application Runtime Settings in Java Preferences.

I previously had J2SE 5.0, J2SE 5.0 (64-bit), Java SE 6 (64-bit), J2SE 1.4.2, in that order. I have now swapped the first two around so that the 64-bit version is first, and therefore preferred. Cyberduck will now launch ok.

We ship the native library of Rococoa as a universal binary.

librococoa.dylib: Mach-O universal binary with 3 architectures
librococoa.dylib (for architecture ppc7400):    Mach-O dynamically linked shared library ppc
librococoa.dylib (for architecture i386):   Mach-O dynamically linked shared library i386
librococoa.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64

I don't see a reason why it should not load with J2SE 5.0 or J2SE 5.0 (64-bit). Is this a unsupported configuration by Apple (i.e. custom build Java runtime?) I don't know of a 64bit J2SE 5.0 release.

cyberduck commented 14 years ago

richard fairhurst commented

As far as I know it's not a custom build - I've not knowingly installed one. JavaVM framework appears to be 12.1.0 if that helps. I haven't installed the Java for Mac OS X 10.5 Update 5.