在我的Java应用程序中,一个很重要的功能是能够根据音频文件的元数据(例如,album/artist-title)重命名音频文件,并且使用Javascript指定掩码,这使得重命名功能非常灵活和强大。
我知道Javascript被弃用了,但现在看来它实际上将从Java15以后被删除。这种功能的丧失对我来说可能是一个主要问题,所以我问,即使它被正式删除,我是否有办法在Java 15应用程序中继续使用Javascript,也就是说,它是否可以作为opensrc插件使用,我可以自担风险。在Ecmascript 5.1上停止开发对我来说不是什么大问题。
有人提到使用GraalVM,但没有解释如何做到这一点,我认为这不符合我的情况,特别是我的应用程序在一些32位Arm环境中可用,而GraalVM在32位Arm环境中不可用。
我已经从Java 11迁移到Java 14来解决一些其他问题,所以我不能真正回到Java 11,而且由于Java 14不是LTS版本,我不能长时间坚持使用Java 14。
这是我的大部分Javascript代码
try
{
mask = includeUserDefinedFunctions(mask);
ScriptEngine engine = manager.getEngineByName("JavaScript");
for(SongFieldName next:SongFieldName.values())
{
if(next.getScriptVar()!=null && next.getSongFieldKey()!=null)
{
engine.put(next.getScriptVar(), cleanValue(song.getFieldValueSpaceSeparatedOrEmptyString(next.getSongFieldKey()), song));
}
}
String result = (String)engine.eval(mask);
return result;
}
catch(ScriptException se)
{
throw se;
}
您可以使用独立版的Nashorn:https://github.com/openjdk/nashorn.
Nashorn是一个JPMS模块,因此请确保它及其传递依赖(Nashorn依赖于几个ASM JAR)位于应用程序的模块路径上,或者适当地添加到模块层,或者以其他方式配置为模块。
虽然独立Nashorn主要用于Java15及更高版本,但它也可以用于内置Nashorn版本的Java11至14版本。有关两个版本都存在时使用的详细信息,请参见本页。
您可以在任何JVM上运行GraalVM的JavaScript引擎,作为从Maven中心提取的一组依赖项。这里有一个例子:https://github.com/graalvm/graaljs/blob/master/docs/user/RunOnJDK.md
如果没有GraalVM编译器,速度会慢一些,因为GraalVM的语言实现框架需要来自编译器的特定api,而afaik不在其他JIT中。
如果你想把你的应用程序迁移到使用GRAALVM的JavaScript,如果你使用某些NARHONK特性,它可能无法从代码中工作,考虑从<代码> NASHON兼容模式< /代码>开始(这里有更多的细节:https://github.com/graalvm/graaljs/blob/master/docs/user/NashornMigrationGuide.md).
我有一个现有的Spring Boot应用程序,它是非模块化的,使用Nashorn。该应用程序在Java14上运行良好。 添加Java15可用的新Nashorn的Maven坐标后,应用程序在启动脚本引擎时失败。 错误消息: 是否需要将整个项目模块化以使用Nashorn?
本文向大家介绍springboot 高版本后继续使用log4j的完美解决方法,包括了springboot 高版本后继续使用log4j的完美解决方法的使用技巧和注意事项,需要的朋友参考一下 springboot 高版本后不支持log4j了,很多人还是喜欢log4j风格的日志,我们自己来加载log4j,其实很容易。 第一步:我们手动加入我们想要的log4j jar,在项目里面随便建一个文件夹,将用
因此,我尝试将依赖项加载到代码中,然后得到以下结果: TypeLoadException:无法加载“类型”系统。数据SqlClient。SqlConnection“来自程序集”系统。数据,版本=2.0.0.0,区域性=中立,PublicKeyToken=b77a5c561934e089'。系统反射MonoMethodInfo。GetMethodInfo(IntPtr句柄)(at/Users/bui
问题内容: 我想在点击提交按钮时验证WordPress帖子上的用户条目,显示错误消息是否存在问题,如果一切正常,则提交表单。我有一个PHP函数进行检查,如果输入的数据还可以,则返回,否则返回一些错误代码。以下JavaScript发出AJAX请求,并应在成功检查后继续提交表单,但不会: 该代码是根据WPSE问题改编的,该问题最初对我不起作用,因为未提交表单。我发现,如果绑定到的jQuery函数返回t
问题内容: 作为标题,我想知道如何使用golang中的toml文件。 在此之前,我展示了我的toml示例。这样对吗? 然后,我想将这些数据设置为struct类型。 因此,我想按如下方式访问子元素。 提前致谢! 问题答案: 首先获取BurntSushi的toml解析器: BurntSushi解析toml并将其映射到结构,这就是您想要的。 然后执行以下示例并从中学习: 请注意和及其如何映射到该结构。