在我的 Java 应用程序中,一个重要的小功能是能够根据音频文件的元数据(例如专辑/艺术家-标题)重命名音频文件,并且使用Javascript指定掩码,这使得重命名功能非常灵活和强大。
我知道 Javascript 已被弃用,但现在看来它实际上将从 Java 15 开始被删除。这种功能损失对我来说可能是一个主要问题,所以我问即使它被正式删除,有没有办法我可以在 Java 15 应用程序中继续使用 Javascript,即它是否可以作为我可以使用的 opensrc 插件在我自己的风险。Ecmascript 5.1 的开发已经停止这一事实对我来说不是一个主要问题。
有人提到使用GraalVM,但没有解释如何执行此操作,我认为这不适合我的场景,特别是我的应用程序可用于某些 32 位Arm环境,而 GraalVM 不可用于 32 位。
我已经从 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;
}