首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中的Nashorn 8 maven项目

Java中的Nashorn 8 maven项目
EN

Stack Overflow用户
提问于 2022-04-19 02:33:05
回答 1查看 234关注 0票数 0

我面临一个问题,在我的maven项目中,nashorn JavaScript引擎无法工作。当我同时使用java 8和java 11时,以下代码在独立的java文件中工作。

代码语言:javascript
运行
复制
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine engine = scriptEngineManager.getEngineByName("JavaScript");
if (engine == null)
    System.out.println("The engine is null.");

但是在我的maven项目中使用相同的代码时,它只适用于java 11,当我在maven项目中使用java 8时,engine是空的。我打印了现有的引擎和它们的别名,我看到了nashorn和JavaScript别名。这是以前的工作,我不认为因为我的项目的改变,它是坏的。在我的maven项目中,我也不依赖nashorn (因为它应该存在于java 8?)。有什么想法吗?

注意:我使用的是Java1.8(或java 8),当我使用Java1.11(或Java 11)时,问题就消失了。

EN

回答 1

Stack Overflow用户

发布于 2022-09-10 11:38:30

我也面临着一个类似的问题。

Java 1.8、Maven 3.8

当我通过mvn test -引擎运行测试时,它是不可用的,并且我得到了错误Can't find scripting engine for 'javascript': scriptEngine is null。同时,当应用程序或junit测试通过idea运行时,一切正常。

在我的例子中,问题是在万无一失的插件配置中:

代码语言:javascript
运行
复制
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven-surefire-plugin.version}</version>
                <configuration>
                    <forkCount>0</forkCount>
                    <runOrder>alphabetical</runOrder>
                    <reportsDirectory>${junit.utReportFolder}</reportsDirectory>
                </configuration>
            </plugin>

问题是forkCount = 0。如果删除param forkCound (转到默认值)- nashorn引擎就可用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71919026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档