<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Creating Single-file Runnable Jars in Scala with eclipse</title>
	<atom:link href="http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/feed/" rel="self" type="application/rss+xml" />
	<link>http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/</link>
	<description>Clippings, code snippets, and other searchable web notes</description>
	<lastBuildDate>Sun, 15 Aug 2010 15:21:54 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jesper Villadsen</title>
		<link>http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/comment-page-1/#comment-4018</link>
		<dc:creator>Jesper Villadsen</dc:creator>
		<pubDate>Sun, 15 Aug 2010 15:21:54 +0000</pubDate>
		<guid isPermaLink="false">http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/#comment-4018</guid>
		<description>After reading a bit more about the new scala-ide () I realized that it is now even easier, since you can now call your scala main method directly from the java main method.

&lt;code&gt;

package scala.loader;

public class ScalaEntryPoint {

    public static void main(String[] args) {
        sourceHandling.Compiler.main(args);
    }
}
&lt;/code&gt;

The editor does complain about the syntax, but it builds fine.

You then have to add scala-library.jar to the project as an &quot;external JAR&quot; before export.</description>
		<content:encoded><![CDATA[<p>After reading a bit more about the new scala-ide () I realized that it is now even easier, since you can now call your scala main method directly from the java main method.</p>
<p><code></p>
<p>package scala.loader;</p>
<p>public class ScalaEntryPoint {</p>
<p>    public static void main(String[] args) {<br />
        sourceHandling.Compiler.main(args);<br />
    }<br />
}<br />
</code></p>
<p>The editor does complain about the syntax, but it builds fine.</p>
<p>You then have to add scala-library.jar to the project as an &#8220;external JAR&#8221; before export.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jesper Villadsen</title>
		<link>http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/comment-page-1/#comment-3994</link>
		<dc:creator>Jesper Villadsen</dc:creator>
		<pubDate>Thu, 12 Aug 2010 19:07:35 +0000</pubDate>
		<guid isPermaLink="false">http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/#comment-3994</guid>
		<description>Worked fine on scala 2.7.7, but now, after installing scala-ide, scala 2.8.0, I cannot find the appropriate scala.tools.nsc referred to above in ScalaEntryPoint.</description>
		<content:encoded><![CDATA[<p>Worked fine on scala 2.7.7, but now, after installing scala-ide, scala 2.8.0, I cannot find the appropriate scala.tools.nsc referred to above in ScalaEntryPoint.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Dew</title>
		<link>http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/comment-page-1/#comment-3687</link>
		<dc:creator>Chris Dew</dc:creator>
		<pubDate>Sun, 04 Jul 2010 05:51:45 +0000</pubDate>
		<guid isPermaLink="false">http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/#comment-3687</guid>
		<description>Thanks for taking the time to post this.  I&#039;m just looking into Scala.  I&#039;m having trouble with your example in Eclipse:

The java file fails to run in Eclipse with error:

no such file: vg.os.ScalaMain

If I jar it up it fails to run with:

chris@vostro:~$ java -jar scalatest.jar 
Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: scala/ScalaObject
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
	at vg.os.Main.main(Main.java:15)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	... 14 more

Any idea what silly mistake I&#039;m making?

Thanks,

Chris.


Main.java:

package vg.os;

import java.util.ArrayList;

import scala.tools.nsc.MainGenericRunner;


public class Main { 
    public static void main (String[] args) {
        ArrayList argList = new ArrayList();
        argList.add(&quot;vg.os.ScalaMain&quot;);
        for (String s : args) {
            argList.add(s);
        }
        MainGenericRunner.main(argList.toArray(new String[0]));
    }
}


ScalaMain.scala:

package vg.os

object ScalaMain {
  def main(args : Array[String]) : Unit = {
	  println(&quot;hello world from ScalaMain&quot;)
  }
}</description>
		<content:encoded><![CDATA[<p>Thanks for taking the time to post this.  I&#8217;m just looking into Scala.  I&#8217;m having trouble with your example in Eclipse:</p>
<p>The java file fails to run in Eclipse with error:</p>
<p>no such file: vg.os.ScalaMain</p>
<p>If I jar it up it fails to run with:</p>
<p><a href="mailto:chris@vostro:~$">chris@vostro:~$</a> java -jar scalatest.jar<br />
Exception in thread &#8220;main&#8221; java.lang.NoClassDefFoundError: scala/ScalaObject<br />
	at java.lang.ClassLoader.defineClass1(Native Method)<br />
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)<br />
	at java.lang.ClassLoader.defineClass(ClassLoader.java:616)<br />
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)<br />
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)<br />
	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)<br />
	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)<br />
	at java.security.AccessController.doPrivileged(Native Method)<br />
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)<br />
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)<br />
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)<br />
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)<br />
	at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)<br />
	at vg.os.Main.main(Main.java:15)<br />
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject<br />
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)<br />
	at java.security.AccessController.doPrivileged(Native Method)<br />
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)<br />
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)<br />
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)<br />
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)<br />
	&#8230; 14 more</p>
<p>Any idea what silly mistake I&#8217;m making?</p>
<p>Thanks,</p>
<p>Chris.</p>
<p>Main.java:</p>
<p>package vg.os;</p>
<p>import java.util.ArrayList;</p>
<p>import scala.tools.nsc.MainGenericRunner;</p>
<p>public class Main {<br />
    public static void main (String[] args) {<br />
        ArrayList argList = new ArrayList();<br />
        argList.add(&#8221;vg.os.ScalaMain&#8221;);<br />
        for (String s : args) {<br />
            argList.add(s);<br />
        }<br />
        MainGenericRunner.main(argList.toArray(new String[0]));<br />
    }<br />
}</p>
<p>ScalaMain.scala:</p>
<p>package vg.os</p>
<p>object ScalaMain {<br />
  def main(args : Array[String]) : Unit = {<br />
	  println(&#8221;hello world from ScalaMain&#8221;)<br />
  }<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lachlan Cotter</title>
		<link>http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/comment-page-1/#comment-3264</link>
		<dc:creator>Lachlan Cotter</dc:creator>
		<pubDate>Sat, 29 May 2010 03:02:32 +0000</pubDate>
		<guid isPermaLink="false">http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/#comment-3264</guid>
		<description>Ooops … sorry about the erroneous extra &quot;r&quot; in &quot;Gary&quot;. A little quick on the trigger finger.</description>
		<content:encoded><![CDATA[<p>Ooops … sorry about the erroneous extra &#8220;r&#8221; in &#8220;Gary&#8221;. A little quick on the trigger finger.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lachlan Cotter</title>
		<link>http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/comment-page-1/#comment-3263</link>
		<dc:creator>Lachlan Cotter</dc:creator>
		<pubDate>Sat, 29 May 2010 02:59:39 +0000</pubDate>
		<guid isPermaLink="false">http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/#comment-3263</guid>
		<description>Thanks for posting this Garry. This ended a long and agonising trial as to how to deploy my Scala app.</description>
		<content:encoded><![CDATA[<p>Thanks for posting this Garry. This ended a long and agonising trial as to how to deploy my Scala app.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

