Skriptsprachen zur Einbettung in Java

Status
Nicht offen für weitere Antworten.

AlArenal

Top Contributor
Hallihallo!

Ich habe hier mal wieder nen Nuss zu knacken, zu der es noch nichts hier im Forum gibt. ICh hole mal etwas aus und erläutere die Begleitumstände:

Ich entwickle grafische Anwendungen auf Basis einer Graph-Bibliothek namens JGraph ( http://www.nwoods.com ). Der Einfachheit kann man sich die Anwendungen ähnlich wie MS Visio oder iGrafx (ehemals ABC) Flowcharter vorstellen. Man hat also eine Arbeitsfläche, in die kann man per Drag&Drop Objekte hineinziehen und beschriften und diese Objekte mit Pfeilen verbinden.

Für eine neue Anwendung, an der ich nebenher derzeit etwas rumplane und hier und da nach Ideen zur Umsetzung schaue ist geplant, dass diese grafischen Objekte mathematische Operationen, Funktionen, etc darstellen sollen. Im Grunde soll man die Möglichkeit haben grafisch Funktionen zu erstellen, Variablen anzulegen, etc. Intern möchte ich dies dann in eine Skriptsprache transformieren und dieses Skript wird dann ausgeführt. Im "Profimodus" soll es so auch möglich sein direkt Skriptcode zu erstellen / zu editieren.

Problem ist nun, das ich auf Anhieb einen Arsch voll Projekte im Netz finde, die man dazu vielleicht nutzen könnte, mit denen ich aber keine Erfahrung habe und ich möchte nicht unbedingt alle erst einzeln ausprobieren müssen. Aus der Skriptsprache heraus soll man auch nur auf ganz bestimmte Objekte zugreifen können.

Sprachen/Projekte, die mir untergekommen sind und generell erstmal zu evaluieren wären, sind:

- Python/Jython: http://www.jython.org/
- Groovy: http://groovy.codehaus.org/
- JudoScript: http://www.judoscript.com/index.html
- Javascript/Rhino: http://www.mozilla.org/rhino/
- ObjectScript: http://objectscript.sourceforge.net/
- Ruby/JRuby: http://jruby.sourceforge.net/
- Java/BeanShell: http://www.beanshell.org/home.html

Diese basieren zum Teil auf dem Jakarta BSF (Bean Scripting Framework) der Apache Group ( http://jakarta.apache.org/bsf/ ).

Mich würds jetzt mal interessieren ob schon jemand in diesem Bereich Erfahrungen hat und mal ein wenig was erzählen kann. Vielleicht hat ja auf Basis des BSF auch schon ne eigene Skriptsprache entwickelt?[/url]
 
Hi,

ich bin auch gerade auf bsf gekommen und suche ein einfaches Beispiel zum starten. Die Dokumentation gibt nicht viel her.

Kannst Du vielleicht was posten ?

In der Doku seh ich den Hinweis:

<%@ page language="javascript" %>

aber, da krieg ich gleich mal:

org.apache.jasper.JasperException: /index.jsp(4,0) Page directive: invalid language attribute

Folgendes Beispiel wollte ich ausführen, ich habe es in einem Artikel gefunden:

f = new java.awt.Frame("JavaScript running in BSF");
bsf.addEventListener (f, "window", "windowClosing","java.lang.System.exit (0);");
b1 = new java.awt.Button("Ave, mundus!");
bsf.addEventListener(b1, "action", null, "quit('JavaScript says goodbye')");
f.add(b1);
f.pack();
f.show();
f.toFront();

function quit( s ) {
java.lang.System.out.println( s );
java.lang.System.exit(0);
}

Im Classpath ist bsf.jar.
 
Bin noch nciht dazu gekommen mich damit eingehender zu beschäftigen und würde aber wohl am ehesten mit Groovy arbeiten.

Zu deinem Test kann ich nur vermuten, dass dir da noch was fehlt. Das BSF ist doch nur ein Framework, wenn du Javascript ausführen willst, brauchst noch wenigstens die Javascript-Lib ausm Mozilla-Project.
 
Ja, inzwischen hab ich das entsprechende Javascript JAR aus dem Rhino Projekt auch dem classpath hinzugefügt.

Jetzt kann mit Hilfe der bsf Main Klasse eine .js Datei ausführen.
Sieht dann so (ähnlich) aus, mit entsprechendem Klassenpfad:
org.apache.bsf.Main hello.js

In dem hello.js kann ich dann ich wie oben gezeigt einfach auf Java Klassen zugreifen, z.b. Frame.

Nur das ganze in einer JSP auszuführen ist mir nicht gelungen, wegen dem oben beschriebenen Fehler.
 
Sind die erforderlichen JARs auch da, wo dein Tomcat (?) sie geren hätte und hast du ihn anschließend neu gestartet?
 
die beiden jars sind im Context-Classpath meiner Webapp, also unter WEB-INF/lib.

Wo gehören sie denn hin ? nach TOMCAT/common/lib ?
Ich hab nichts auf der bsf-site darüber lesen können was man mit dem Tomcat machen muss.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben