You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ中Java 17运行Snowpark Java示例失败求助

Snowpark Java示例运行报错:IllegalAccessError

运行Snowflake官方Snowpark Java示例时出现异常,该示例曾正常运行一次,之后无法使用,完整错误信息如下:

Exception in thread "main" java.lang.IllegalAccessError: class com.snowflake.snowpark.internal.UDFClassPath$ (in unnamed module @0x4218d6a3) cannot access class sun.net.www.ParseUtil (in module java.base) because module java.base does not export sun.net.www to unnamed module @0x4218d6a3
    at com.snowflake.snowpark.internal.UDFClassPath$.$anonfun$getPathUsingClassLoader$1(UDFClassPath.scala:101)
    at scala.Option.map(Option.scala:230)
    at com.snowflake.snowpark.internal.UDFClassPath$.getPathUsingClassLoader(UDFClassPath.scala:89)
    at com.snowflake.snowpark.internal.UDFClassPath$.getPathForClass(UDFClassPath.scala:72)
    at com.snowflake.snowpark.internal.UDFClassPath$.<init>(UDFClassPath.scala:23)
    at com.snowflake.snowpark.internal.UDFClassPath$.<clinit>(UDFClassPath.scala)
    at com.snowflake.snowpark.Session.sessionInfo$lzycompute(Session.scala:86)
    at com.snowflake.snowpark.Session.sessionInfo(Session.scala:76)
    at com.snowflake.snowpark.Session$.com$snowflake$snowpark$Session$$setActiveSession(Session.scala:1195)
    at com.snowflake.snowpark.Session$SessionBuilder.createInternal(Session.scala:1327)
    at com.snowflake.snowpark.Session$SessionBuilder.create(Session.scala:1320)
    at com.snowflake.snowpark_java.SessionBuilder.create(SessionBuilder.java:71)
    at com.carnegielearning.snowpark.SnowparkTemplate.main(SnowparkTemplate.java:22)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131)

Process finished with exit code 1

已尝试以下操作但未解决问题:

  • 重装2019、2020、2021、2022版本的IntelliJ IDEA
  • 改用Eclipse运行
  • 切换Java 11、15、16、17、19版本

解决方案

1. 添加JVM启动参数

该错误源于Java 9+模块系统限制,Snowpark内部代码尝试访问Java核心模块的非公开API。在运行配置中添加以下JVM参数,允许java.base模块将sun.net.www包暴露给未命名模块:

--add-exports java.base/sun.net.www=ALL-UNNAMED
  • IDEA中:编辑运行配置,在VM options输入框中添加上述参数
  • Maven中:在pom.xml的maven-surefire-plugin配置里添加jvmArgs
  • Gradle中:在build.gradle的run任务里配置jvmArgs

2. 升级Snowpark依赖版本

旧版本Snowpark可能存在与高版本JDK的兼容性问题,建议升级到最新稳定版。以Maven为例,更新依赖:

<dependency>
    <groupId>com.snowflake</groupId>
    <artifactId>snowpark</artifactId>
    <version>最新稳定版本号</version>
</dependency>

3. 清理项目缓存

  • IDE中清理缓存(IDEA:File -> Invalidate Caches...,勾选Clear file system cache和Clear local history后重启)
  • 清理本地Maven/Gradle仓库的Snowpark相关依赖,重新下载

内容的提问来源于stack exchange,提问作者Vinicius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 02:17:46