【问题标题】:Get all variables of javascript in JAVA在JAVA中获取javascript的所有变量
【发布时间】:2026-02-04 20:35:01
【问题描述】:

我正在使用 rhino 和 Scripting for the Java Platform 以允许用户扩展我的应用程序。

但是用户可以编写一些案例,例如(ASTO.value>440) || (ASTO.bellowNormal) 等... 问题是在使用 ScriptEngine 从我的 JAVA 应用程序运行脚本之前 我想获取所有变量的名称!因为我应该知道脚本运行需要哪些变量... 我知道正则表达式可以完成这项工作,但我不确定...... 请有人可以帮我找出 java regexp 来获取我真正喜欢它的变量..

【问题讨论】:

标签: java rhino


【解决方案1】:

我找到了解决方案 cx.getDebuggableView(result).getParamAndVarCount() 但它不返回未声明的变量:(

【讨论】:

    【解决方案2】:

    我们正在做一些非常相似的事情,尽管它是用 Scala 编写的,我只能给你一些提示......

    1. 测试真的很重要
    2. 这是我们更复杂的测试之一:listArg[Math.floor(4 / listArg[zeroArg]['f3'])]
    3. 描述设计的变量...

      // chars after which there may be an environment variable used
      private val NewScopeChars = List('[', '(', '/', '*', '+', '-', ',')
      // chars that signal the end of a variable name
      private val SepChars = '.' :: ' ' :: ';' :: ']' :: ')' :: NewScopeChars
      private val ExcludeStrings = List("new", "Math")
      private val LiteralPrefixes = "'" :: "\"" :: (0 to 9).map(_.toString).toList
      

    我有a problem with performance,因此我们将不胜感激。

    【讨论】:

      【解决方案3】:

      【讨论】: