【问题标题】:How to put javaScript code in Java program/application?如何将 javaScript 代码放入 Java 程序/应用程序中?
【发布时间】:2013-12-20 13:51:06
【问题描述】:

尝试输入您的 Ace Editor 应用程序代码:http://ace.c9.io/#nav=embedding。 我发现了这样的东西:http://metoojava.wordpress.com/2010/06/20/execute-javascript-from-java/ 我把这段代码:

engine.eval(new java.io.FileReader("ace-builds/src-noconflict/ace.js"));

但我有构建错误。

Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "window" is not defined. (<Unknown source>#1513) in <Unknown source> at line number 1513
    at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:224)
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
    at javaapplication9.JavaApplication9.main(JavaApplication9.java:28)
Caused by: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "window" is not defined. (<Unknown source>#1513)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3770)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3748)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.notFoundError(ScriptRuntime.java:3833)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.nameOrFunction(ScriptRuntime.java:1826)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.name(ScriptRuntime.java:1765)
    at sun.org.mozilla.javascript.internal.Interpreter.interpretLoop(Interpreter.java:1785)
    at sun.org.mozilla.javascript.internal.Interpreter.interpret(Interpreter.java:849)
    at sun.org.mozilla.javascript.internal.InterpretedFunction.call(InterpretedFunction.java:162)
    at sun.org.mozilla.javascript.internal.ContextFactory.doTopCall(ContextFactory.java:430)
    at com.sun.script.javascript.RhinoScriptEngine$1.superDoTopCall(RhinoScriptEngine.java:116)
    at com.sun.script.javascript.RhinoScriptEngine$1.doTopCall(RhinoScriptEngine.java:109)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.doTopCall(ScriptRuntime.java:3160)
    at sun.org.mozilla.javascript.internal.InterpretedFunction.exec(InterpretedFunction.java:173)
    at sun.org.mozilla.javascript.internal.Context.evaluateReader(Context.java:1169)
    at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:214)
    ... 2 more

你们中有人知道我该怎么做吗? 感谢您的帮助,祝您节日快乐!

【问题讨论】:

  • 你有什么构建错误?
  • 因为太多了我给它一个链接:pastebin.com/yss10VFd
  • 我对其进行了编辑并粘贴了链接的堆栈跟踪

标签: java javascript


【解决方案1】:

请记住,您正在脱离上下文执行 Javascript 文件。

此 Javascript 文件通常使用浏览器 JS 引擎执行,因此如果您不在该上下文中,则无法访问某些对象,例如导航器、窗口...等。

【讨论】:

  • 所以这个不能做?有办法吗?或者有没有类似的Java程序可以使用?
  • 你想做什么?该指南旨在将 ACE 嵌入 Web 应用程序中。
  • 是的,我知道。我想制作一个笔记本风格的程序,将 Ace 用作文本编辑器。
  • @Ursinus 可以用一些代码来完成,但是这段代码显然只设计用于网页上下文,试图获取元素的计算 CSS 并询问用户的浏览器。跨度>
猜你喜欢
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多