繁体   English   中英

通过Java ScriptEngine API的Jython模块

[英]Jython modules through the Java ScriptEngine API

背景:

我创建了一个应用程序,该应用程序使用一个Jython脚本,并使用ScriptEngine API在Java中对其进行评估。 我评估的Jython脚本文件会导入其他定制的Jython模块并使用它们的类。 我一直在Eclipse中工作,为了让Jython脚本导入其他模块,我必须创建一个外部类文件夹,其中所有Jython脚本都位于其中,包括我评估的脚本。 然后,我不得不将该文件夹添加到类路径中。 通过在Eclipse中进行此设置,一切正常。

现在,我必须准备要发布的应用程序,然后在Eclipse之外对其进行测试。 我将Jython脚本放在一个文件夹中,然后将该文件夹添加到类似于此行的类路径中,

    java -cp ./;C:\MyApplication\Jython.jar;C:\MyApplication\JythonModulesFolder Main argument1_script

该程序可以通过一个Jython脚本的简单测试用例(在Eclipse外部)按预期工作,

    print "Jython Working"

但是,当我尝试使用使用其他自定义Jython模块的Jython脚本时,评估将失败。 再次,所有Jython脚本都已在Eclipse中进行了适当的测试,并获得成功。

题:

我认为问题在于Jython脚本/模块没有像在Eclipse中那样正确地设置为类路径。

那么,如何像在Eclipse中那样模仿我的环境,以使我的Jython模块可见?

日食:

开普勒

在Eclipse上安装的相关软件:

Jython开发工具(JyDt)版本1.4.15的提供者Red Robin Software

更新:

我可以在Jython脚本中做到这一点,

    from my.java.packageJar import *
    import sys

但是我无法导入Jython日志记录,

    import logging

以及我所有的自定义模块。 但是,如果我包括Jython lib文件夹中的日志记录模块,则可以import logging 这是否意味着我需要从Jython bin中获取允许我导入外部文件的模块?

原来我必须添加

    jython2.5.3\Lib

到我的课堂路径。 供参考,这是我的脚本的一部分,

    java.exe -cp "%APP_HOME%\lib\jython.jar;%APP_HOME%\lib\Hammer.jar;%APP_HOME%\lib\gmsecapi.jar;%APP_HOME%\examples\Python;C:\jython2.5.3\Lib;%CLASSPATH%" bridenstine.hammer.main.Main %*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM