当前位置: 首页 > 面试题库 >

我可以使用Java Scripting API将kotlin作为脚本运行吗

壤驷高旻
2023-03-14
问题内容

我想使用Java Scripting
API
从Java运行kotlin代码作为脚本,类似于javascript:

import javax.script.*;
public class EvalScript {
    public static void main(String[] args) throws Exception {
        // create a script engine manager
        ScriptEngineManager factory = new ScriptEngineManager();
        // create a JavaScript engine
        ScriptEngine engine = factory.getEngineByName("JavaScript");
        // evaluate JavaScript code from String
        engine.eval("print('Hello, World')");
    }
}

或类似的API。


问题答案:

是的,可以从Kotlin
1.1开始:http : //kotlinlang.org/docs/reference/whatsnew11.html#javaxscript-
support

此配置将Kotlin脚本引擎添加到我的Kotlin 1.2项目中:

  • META-INF/services/javax.script.ScriptEngineFactory文件,其内容来自https://github.com/JetBrains/kotlin/blob/master/libraries/examples/kotlin-jsr223-local-example/src/main/resources/META-INF/services/javax.script。 ScriptEngineFactory

  • 2个库: <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-script-runtime</artifactId> <version>${kotlin.version}</version> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-script-util</artifactId> <version>${kotlin.version}</version> </dependency>

更新: 从Kotlin 1.2.20开始kotlin-script-util并不kotlin- compiler明确依赖(请参阅https://youtrack.jetbrains.com/issue/KT-17561)。因此,应该再提供一个模块(例如示例项目中的构建文件): <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-compiler- embeddable</artifactId> <version>${kotlin.version}</version> </dependency>



 类似资料:
  • 问题内容: 是否可以在网络服务器上将Python脚本作为后台服务运行?我想这样做以进行套接字通信。 问题答案: 您可以使其成为守护程序。有一个PEP可以提供更完整的解决方案,但是我发现这样做很好。

  • 问题内容: 我们可以使用代码优先迁移来运行sql脚本吗? 我是第一次使用代码,如果要在迁移的update-database命令之前将所做的更改保存到SQL脚本文件中,是否可以? 如果可能的话,请提供完成步骤。另外,如果生成了脚本,那么是否可以使用迁移来运行该脚本? 问题答案: 首先,您需要创建一个迁移。 然后,在生成的迁移文件中,您可以编写SQL。 然后你跑

  • 问题内容: 我有一个脚本,该脚本每隔X次运行一次我的PHP脚本: 如何将其作为守护程序启动? 问题答案: 要将其作为完整的守护程序从Shell运行,您需要使用并重定向其输出。您可以将输出重定向到日志文件,也可以将其丢弃。假设您的脚本名为myscript.sh,请使用以下命令: 这会将进程与当前的shell(stdin,stdout和stderr)完全分开。如果要将输出保留在日志文件中,请用/ pa

  • 问题内容: 我需要将php脚本作为守护进程运行(等待说明并执行操作)。cron工作不会为我做这件事,因为需要在指令到达后立即采取措施。我知道由于内存管理问题,PHP并不是守护进程的最佳选择,但是由于种种原因,在这种情况下我必须使用PHP。我遇到了libslack的一个名为Daemon的工具(http://libslack.org/daemon),它似乎可以帮助我管理守护进程,但是最近5年没有任何更

  • 问题内容: 例如,Facebook.com是否可以在浏览器上运行版本控制脚本,并确定我是否正在使用脚本运行更改的HTML代码? 可以使用一个脚本来完成此操作,该脚本可以读取缓存中的HTML代码并生成某种哈希标签,然后将该哈希标签发送回服务器,并与发送给客户端的代码进行比较吗? 问题答案: 是的,从理论上讲,站点可以推断出各种情况下脚本的存在。 这不是万无一失的,通常对于站点的可忽略的“威胁”来说是

  • 我有一个JS脚本,在使用JDK 8运行时运行良好,但在Java 11上失败并出现错误。 错误是: Java代码: Javascript代码: