Syphon / Processing

Syphon Implementation for Processing
Other
137 stars 33 forks source link

Exported applications using either Syphon client or server don't work #7

Closed codeanticode closed 10 years ago

codeanticode commented 10 years ago

Tested on Processing 2.1, Mac OSX 10.9, with the default Send/Receive frame examples. The sketches work ok from the PDE, but the exported applications give the following error:

Exception in thread "Animation Thread" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: no JSyphon in java.library.path at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58) at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103) at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:206) at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172) at javax.media.opengl.Threading.invoke(Threading.java:191) at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:492) at processing.opengl.PJOGL.requestDraw(PJOGL.java:626) at processing.opengl.PGraphicsOpenGL.requestDraw(PGraphicsOpenGL.java:1598) at processing.core.PApplet.run(PApplet.java:2177) at java.lang.Thread.run(Thread.java:744) Caused by: java.lang.UnsatisfiedLinkError: no JSyphon in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886) at java.lang.Runtime.loadLibrary0(Runtime.java:849) at java.lang.System.loadLibrary(System.java:1088) at jsyphon.JSyphonServerList.(Unknown Source) at codeanticode.syphon.SyphonClient.listServers(Unknown Source) at ReceiveFrames.setup(ReceiveFrames.java:28)

bangnoise commented 10 years ago

I don't know how Processing's exporting functionality works, but it needs to copy the required libraries (JSyphon and Syphon.framework) to the appropriate locations inside the exported bundle - hopefully Processing has a mechanism for addons we can use to have it do that..?

codeanticode commented 10 years ago

The exported app contains the files form all the libraries used by the sketch inside /Contents/Java, in the case of a sketch using syphon that folder has:

syphon-export

vade commented 10 years ago

There needs to be a phase to force install_name_tool to find the framework path, as "Java" is not a location to bootstrap / load normal Mac OS X Frameworks, normally thats the "Frameworks" folder.

Try to move the Syphon.framework into a Frameworks folder inside "contents"

codeanticode commented 10 years ago

ok, thanks for the hint. I just tried moving Syphon.framework into contents/Frameworks, but the error remains the same. "Exception in thread "Animation Thread" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: no JSyphon in java.library.path"... it is complaining about not finding JSyphon, not the framework, so perhaps the problem is different?

vade commented 10 years ago

Oh, indeed, you are correct. Apologies. It does appear to be about JSyphon. I do know that that framework loading path may need to be changed based on where libraries are loaded from, if its non standard though. install_name_tool is typically the path to modify that parameter on dylibs, static libs, and frameworks. That said, it does seem like JSYphon isn't even being loaded, which in turn would not attempt to load Syphon.framework. Unsure, about this, as I don't know enough about Processing's add ons loading / configuration.

h2oop commented 10 years ago

has it something to do with static and dynamic libraries ?

On 15 Dec 2013, at 00:39, vade notifications@github.com wrote:

Oh, indeed, you are correct. Apologies. It does appear to be about JSyphon. I do know that that framework loading path may need to be changed based on where libraries are loaded from, if its non standard though. install_name_tool is typically the path to modify that parameter on dylibs, static libs, and frameworks. That said, it does seem like JSYphon isn't even being loaded, which in turn would not attempt to load Syphon.framework. Unsure, about this, as I don't know enough about Processing's add ons loading / configuration.

— Reply to this email directly or view it on GitHub.

h2oop commented 10 years ago

Working again with processing 2.1.1

On 15 Dec 2013, at 00:28, codeanticode notifications@github.com wrote:

ok, thanks for the hint. I just tried moving Syphon.framework into contents/Frameworks, but the error remains the same. "Exception in thread "Animation Thread" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: no JSyphon in java.library.path"... it is complaining about not finding JSyphon, not the framework, so perhaps the problem is different?

— Reply to this email directly or view it on GitHub.

clankill3r commented 10 years ago

In case it helps, i have the same error trying to run from intelliJ without making it an exported app. For me this helped as vm option:

-Djava.library.path=/Users/doekewartena/Dropbox/Public/Processing/libraries/Syphon/library

codeanticode commented 10 years ago

working on 2.2.1, using latest revision. Will post the 1.0 release soon!