You may want to have a look at my little HJVM project on Github (<a href="https://github.com/JPMoresmau/HJVM">https://github.com/JPMoresmau/HJVM</a>). Promise, I&#39;ll put in on Hackage some day. Basically it provides FFI wrappers and some c code to be able to start a JVM and call Java methods, etc from Haskell. <div class="gmail_extra">
<br>-- <br>JP Moresmau<br><a href="http://jpmoresmau.blogspot.com/">http://jpmoresmau.blogspot.com/</a></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 20, 2012 at 7:53 AM, Mathijs Kwik <span dir="ltr">&lt;<a href="mailto:mathijs@bluescreen303.nl" target="_blank">mathijs@bluescreen303.nl</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">KC &lt;<a href="mailto:kc1956@gmail.com">kc1956@gmail.com</a>&gt; writes:<br>

<br>
&gt; Instead of Haskell running on the JVM is there a way for Haskell to<br>
&gt; call a JVM language (or generate bytecode) to access the Java class<br>
&gt; libraries when needed?<br>
<br>
</div>I once did a small test to get this working.<br>
It&#39;s not that hard, but needs some work. It&#39;s fine for exposing a few<br>
functions though.<br>
<br>
Basically it&#39;s a 2-step process, eased by using a makefile or similar<br>
helper.<br>
<br>
You have to compile your haskell code into a shared object (.so on<br>
linux, .dll on windows), which includes the haskell runtime (rts).<br>
<br>
This library can be called from c.<br>
A small pitfall is that you first need to do a call to initialize the<br>
haskell runtime, and when you&#39;re done using it, close it.<br>
This is most easily just tied to your c/java program&#39;s main<br>
initialization functions.<br>
<br>
Java is able to load/use these shared libraries through JNI.<br>
Of course you lose your platform-independance, so if you want your java<br>
application to work on multiple platforms / OSses, you need to build<br>
shared objects for all of them.<br>
<br>
Last but not least:<br>
You have to export the haskell functions you want through FFI.<br>
Also, make sure they use raw data types such as CString, as that what C<br>
and java will give you and expect back.<br>
<br>
So basically you go Haskell FFI &lt;-&gt; C &lt;-&gt; Java JNI<br>
<br>
I&#39;m sorry I cannot give you any links or code, because I&#39;m in a bit of a<br>
hurry. But google and the ghc docs are your friend.<br>
<span class=""><font color="#888888"><br>
Mathijs<br>
</font></span><div class="im"><br>
<br>
<br>
&gt;<br>
&gt; Or<br>
&gt;<br>
&gt; Is there a way for a JVM language or bytecode to call Haskell when needed?<br>
<br>
</div><div class=""><div class="h5">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div><br>
</div>