Hallo Zusammen,
ich verwende die JavaScriptEngine um einen dynamischen Textconverter zu erstellen. Jetzt habe ich folgendes Problem:
dieser Code funktioniert ohne Probleme. Wie zu erwarten, werden im String datum alle Punkte ersetzt. Jetzt ist es aber in meinem Tool so, dass die Befehle von Properties gelesen werden.
field7 = field[5].replace(/\\./g, '')
field ist das Array der Eingabedatei. field7 wäre dann der Platz für die Ausgabe. Leider funktioniert das Ganze hier nicht mehr so toll .
Das ist allerdings nur mit dem Punkt und replaceAll ein Problem. Ein einzelner Punkt würde ohne Probleme mit '.', '' funktionieren. field[5] ist mit 21.09.10 initialisiert (habs mir mal ausgeben lassen).
Exception:
javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: The choice of Java constructor replace matching JavaScript argument types (function,string) is ambiguous; candidate constructors are:
class java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)
class java.lang.String replace(char,char) (<Unknown source>#1) in <Unknown source> at line number 1
at com.sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
at com.sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
at javax.script.AbstractScriptEngine.eval(Unknown Source)
at de.pland.pdc.util.parser.Parser.parse(Parser.java:48)
at de.pland.pdc.load.Process.coreProcess(Process.java:276)
at de.pland.pdc.load.Process.fileProcess(Process.java:193)
at de.pland.pdc.load.Process.start(Process.java:113)
at de.pland.pdc.load.Main.main(Main.java:76)
die Funktion kommt imho auch richtig an (s. Debugscreenshot):
Habs schon mit sämtlichen Variationen ausprobiert aber bis jetzt weniger erfolgreich.
Weiß jemand von euch Rat?
Danke und Grüße
nrg
ich verwende die JavaScriptEngine um einen dynamischen Textconverter zu erstellen. Jetzt habe ich folgendes Problem:
Java:
public static void main (String[] args) {
ScriptEngineManager manager = new ScriptEngineManager ();
ScriptEngine engine = manager.getEngineByName ("js");
String datum = "22.01.2008";
engine.put("datum", datum);
String script = "datum.replace(/\\./g, '')";
try {
System.out.println(engine.eval(script));
} catch (ScriptException e) {
e.printStackTrace();
dieser Code funktioniert ohne Probleme. Wie zu erwarten, werden im String datum alle Punkte ersetzt. Jetzt ist es aber in meinem Tool so, dass die Befehle von Properties gelesen werden.
field7 = field[5].replace(/\\./g, '')
field ist das Array der Eingabedatei. field7 wäre dann der Platz für die Ausgabe. Leider funktioniert das Ganze hier nicht mehr so toll .
Das ist allerdings nur mit dem Punkt und replaceAll ein Problem. Ein einzelner Punkt würde ohne Probleme mit '.', '' funktionieren. field[5] ist mit 21.09.10 initialisiert (habs mir mal ausgeben lassen).
Exception:
javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: The choice of Java constructor replace matching JavaScript argument types (function,string) is ambiguous; candidate constructors are:
class java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)
class java.lang.String replace(char,char) (<Unknown source>#1) in <Unknown source> at line number 1
at com.sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
at com.sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
at javax.script.AbstractScriptEngine.eval(Unknown Source)
at de.pland.pdc.util.parser.Parser.parse(Parser.java:48)
at de.pland.pdc.load.Process.coreProcess(Process.java:276)
at de.pland.pdc.load.Process.fileProcess(Process.java:193)
at de.pland.pdc.load.Process.start(Process.java:113)
at de.pland.pdc.load.Main.main(Main.java:76)
die Funktion kommt imho auch richtig an (s. Debugscreenshot):
Habs schon mit sämtlichen Variationen ausprobiert aber bis jetzt weniger erfolgreich.
Weiß jemand von euch Rat?
Danke und Grüße
nrg