Hi,

I'm relatively new to Clojure, maybe this is well known problem please 
excuse me for this. First, let me give some context and then ask the 
question; (maybe it's interesting story for somebody out there )

I was developing remote logger server in Clojure recently. Core.async, 
generally Clojure realms is perfect but I needed some java libraries in the 
process. For example, Netty for handling TCP connections, I've been using 
it for years with Java projects and suddenly It took my one day to start it 
working in Clojure. It was a bug or something else, thanks to this link 
saved my time:

http://blog.quiptiq.com/2013/05/20/porting-the-netty-discardserver-example-to-clojure/

I tried to understand the reason behind it, but I couldn't dig deeper at 
the time. ( It's working but in project I can't use CIDER with emacs 
anymore, but that's ok for now, I made it library for my real project which 
is using it.)

I want to move forward, that was the irrelevant part. Now, I can see my 
logs but in terminal, not formatted or something, it's like using tail 
(full of println 's), let's add some UI part to it. First, I want to listen 
for HTTP on some port and give a web page which renders the result but it 
needs more work to make it like streaming rather than static page. This is 
only for my use and I decided to use simple Java-based UI, but all the 
hassle we all know with Swing and I wondered again the solution was to use 
JavaFX but in a cool way with basic web page (I can style(layout) it 
easily), the solution is WebView. Ok it's easy to setup, let's do that. At 
the time, (one hour ago) I was using Clojure 1.6 (in Java 8 runtime), I can 
run simple things with JavaFX but here is the deal;

(import 'javafx.scene.web.WebEngine)


or 

(Class/forName "javafx.scene.web.WebEngine")



give me;

*NoClassDefFoundError Could not initialize class javafx.scene.web.WebEngine 
>  java.lang.Class.forName0 (Class.java:-2)*



I couldn't figure out first, I dig deeper and found nothing wrong with my 
code. I removed all context (lein, project etc.) and simply downloaded 
clojure from clojure.org and fired up REPL and boom! same thing again. It's 
working with clojure 1.7 (huge relief).

The real question here is I want to understand why and what's different 
from java's Class.forName and Clojure's Class/forName semantic ?


*( By the way, java interop is enough to get things working but from my 
experience it causes a lot of pains in the process, you can see it in two 
big problems in a simple getting started project.  I guess it's not so easy 
for us to get out of Java's hell )*






-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to