🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #141599

Java Script Engines i groovy

#141599
From: sadu
Date: Sat, 11 Oct 2008 18:34
64 lines
3124 bytes
Witam

Chce odpalić sobie kod groovy w javie za pomoca Java Script Engines.

mam prosty kodzik:

    List<ScriptEngineFactory> factories = manager.getEngineFactories();

    for (ScriptEngineFactory factory : factories) {

      System.out.println("ScriptEngineFactory Info");

      String engName = factory.getEngineName();
      System.out.println("Script Engine: " + engName);

      System.out.println("-------------------------------------------");
    }
    ScriptEngine engine = manager.getEngineByName("groovy");

Po wykonaniu skryptu pojawia mi się pięknie Script Enginy:

ScriptEngineFactory Info
Script Engine: JRuby Engine
-------------------------------------------
ScriptEngineFactory Info
Script Engine: groovy
-------------------------------------------
ScriptEngineFactory Info
Script Engine: Mozilla Rhino
-------------------------------------------

Ale przy linii:

ScriptEngine engine = manager.getEngineByName("groovy");

Sypie mi :

Exception in thread "main" java.lang.NoClassDefFoundError: 
org/codehaus/groovy/syntax/SyntaxException
        at 
com.sun.script.groovy.GroovyScriptEngineFactory.getScriptEngine(GroovyScriptEngineFactory.java:90)
        at javax.script.ScriptEngineManager.getEngineByName(Unknown Source)
        at comtest.Main.main(Main.java:41)
Caused by: java.lang.ClassNotFoundException: 
org.codehaus.groovy.syntax.SyntaxException
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Zdaję sobie sprawę, że ScriptEngineManager stosuje mechanizm service 
provider i dodałem w META-INF folder "services" z plikiem o nazwie 
"javax.script.ScriptEngineFactory" a tego treść 
"com.sun.script.groovy.GroovyScriptEngineFactory"

może przyda się całość więc jar do ścigniecia:

http://ekontra.com/sadu/groove.rar

Z góry dzięki za pomoc ja już wymiękłem.
sadu
Technical Details
Message-ID: <gcqrk2$186q$1@news2.ipartners.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news2.ipartners.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news2.ipartners.pl!not-for-mail
From: "sadu" <sadu@ekontra.com>
Newsgroups: pl.comp.lang.java
Subject: Java Script Engines i groovy
Date: Sat, 11 Oct 2008 20:34:50 +0200
Organization: GTS Energis
Lines: 69
Message-ID: <gcqrk2$186q$1@news2.ipartners.pl>
NNTP-Posting-Host: ip-89-174-40-179.multimo.gtsenergis.pl
X-Trace: news2.ipartners.pl 1223750082 41178 89.174.40.179 (11 Oct 2008 18:34:42 GMT)
X-Complaints-To: abuse@ipartners.pl
NNTP-Posting-Date: 11 Oct 2008 18:34:42 GMT
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-RFC2646: Format=Flowed; Original
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MSMail-Priority: Normal
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit