Thomas Darimont
Erfahrenes Mitglied
Hallo,
hier mal ein Beispiel für nahtlose Integration einer Scriptsprache (Scala: http://www.scala-lang.org/) in Java am Beispiel
einer Debugging Session mit dem Eclipse Scala Plugin: http://www.scala-lang.org/downloads/eclipse/.
Wenn man in einer Java Anwendung große Teile Scripten möchte, ist es IMHO sehr wichtig, dass die Scriptumgebung neben einer
guten Unterstützung von Code Inspection / Refactoring / Code Editing auch entsprechend guten Debugging Support bietet.
So hätte ich beispielsweise gern die Möglichkeit beim Debuggen einer Java Anwendung mit dem Java Debugger (scheinbar) nahtlos
auf den Script Debugger / Editor umzuschalten sobald Script Code ausgeführt wird-und genau das sieht man unten
Scala:
Man beachte den schönen Stack-Trace
Ist fast so cool wie das nahtlose Debuggen von C / JNI / Java Anwendungen mit Eclipse JDT und CDT:
http://www.tutorials.de/forum/java/...wendungen-gemeinsam-debuggen-mit-eclipse.html
Hier noch ein Beispiel für Scripting mit Python/Jython:
http://www.tutorials.de/forum/java/246047-java-anwendungen-scripten-mit-python-und-jython.html
Gruß Tom
hier mal ein Beispiel für nahtlose Integration einer Scriptsprache (Scala: http://www.scala-lang.org/) in Java am Beispiel
einer Debugging Session mit dem Eclipse Scala Plugin: http://www.scala-lang.org/downloads/eclipse/.
Wenn man in einer Java Anwendung große Teile Scripten möchte, ist es IMHO sehr wichtig, dass die Scriptumgebung neben einer
guten Unterstützung von Code Inspection / Refactoring / Code Editing auch entsprechend guten Debugging Support bietet.
So hätte ich beispielsweise gern die Möglichkeit beim Debuggen einer Java Anwendung mit dem Java Debugger (scheinbar) nahtlos
auf den Script Debugger / Editor umzuschalten sobald Script Code ausgeführt wird-und genau das sieht man unten

Java:
/**
*
*/
package de.tutorials;
/**
* @author Thomas.Darimont
*
*/
public class CallScalaFromJavaExample {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
Class<?> clazz = Class.forName("de.tutorials.scala.ScalaMain");
System.out.println("From Java...");
System.out.println(clazz.getMethod("businessOperation", int.class).
invoke(clazz.newInstance(), 5));
}
}
Scala:
Code:
package de.tutorials.scala;
class ScalaMain {
def main(args : Array[String]){
//println("Hallo")
//println(fak(5))
}
def fak(n: Int) : Int = {
if(n == 0) return 1
else return n * fak(n-1)
}
def businessOperation(n: Int) : Int = {
println("toScala");
return fak(n);
}
}
Man beachte den schönen Stack-Trace

Ist fast so cool wie das nahtlose Debuggen von C / JNI / Java Anwendungen mit Eclipse JDT und CDT:
http://www.tutorials.de/forum/java/...wendungen-gemeinsam-debuggen-mit-eclipse.html
Hier noch ein Beispiel für Scripting mit Python/Jython:
http://www.tutorials.de/forum/java/246047-java-anwendungen-scripten-mit-python-und-jython.html
Gruß Tom