如何使用java.scripting模块?解决javax.script包不可访问问题
解决"The package javax.script is not accessible"错误
这个错误是Java 9及以上版本模块化系统导致的——javax.script包属于JDK自带的java.scripting模块,但该模块不会被默认加载,必须显式声明依赖。不需要额外下载任何JAR包,按以下场景配置即可:
命令行编译运行
编译和运行时都要添加--add-modules java.scripting参数:
# 编译 javac --add-modules java.scripting YourMainClass.java # 运行 java --add-modules java.scripting YourMainClass
IDE配置
IntelliJ IDEA
- 打开
File → Project Structure - 进入
Modules → 你的项目模块 → Dependencies - 点击左上角+号,选择
Module Dependency - 在列表中找到
java.scripting模块并添加
Eclipse
- 右键项目 →
Build Path → Configure Build Path - 切换到
Modulepath标签页 - 点击
Add Library → JRE System Library,选择你的JDK版本完成添加 - 展开JRE节点,勾选
java.scripting模块
构建工具配置
Maven
在pom.xml的编译插件中添加模块参数:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>17</source> <!-- 替换为你的Java版本 --> <target>17</target> <compilerArgs> <arg>--add-modules</arg> <arg>java.scripting</arg> </compilerArgs> </configuration> </plugin> </plugins> </build>
Gradle
在build.gradle中添加编译参数:
tasks.withType(JavaCompile) { options.compilerArgs += ['--add-modules', 'java.scripting'] }
最后检查
确保代码顶部已正确导入所需类:
import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException;
内容的提问来源于stack exchange,提问作者Hochy_Marmeladky
相关产品推荐
相关产品推荐

