首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Java

Java9+移除 Java EE,导致我的 groovy 脚本无法运行

  •  
  •   Cbdy · 12 天前 · 1119 次点击

    以以下这段代码为例

    @Grab('org.jsoup:jsoup:1.10.1')
    import org.jsoup.Jsoup
    
    Jsoup.connect('https://v2ex.com').get()
        .select('span.item_title > a').each {
        println it.text() + ':' + 'https://v2ex.com' + it.attr('href')
    }
    

    原本是 groovy2.5+java8,可以正常跑,然后我前两天格盘重装了 mojave,直接上了 Java10,就不行了,报以下错

    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/usr/local/Cellar/groovy/2.5.0/libexec/lib/groovy-2.5.0.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
    WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
    WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
    WARNING: All illegal access operations will be denied in a future release
    Caught: java.lang.NoClassDefFoundError: Unable to load class groovy.xml.jaxb.JaxbGroovyMethods due to missing dependency javax/xml/bind/Unmarshaller
    java.lang.NoClassDefFoundError: Unable to load class groovy.xml.jaxb.JaxbGroovyMethods due to missing dependency javax/xml/bind/Unmarshaller
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    

    谷歌,爆栈网都翻了一番,还是没有找到解决方法,哪位大佬指点迷津?

    12 回复  |  直到 2018-07-06 16:12:58 +08:00
        1
    orangeade   12 天前
    Java 8,Java9 还不是 LTS 吧
        3
    orangeade   12 天前
    说错,Java9,Java10
        4
    unlimitedsola   12 天前 via Android
    上面发的不是最新版 我随便点的一个
        5
    ivyxjc   12 天前 via Android
    stackoverflow 43574426
        7
    Cbdy   12 天前
    @unlimitedsola @ivyxjc @hcymk2 你们真的试过了吗?我发帖前已经看过一圈了,都不行,我是用 groovy script.groovy 运行的
        8
    hcymk2   12 天前
    @Cbdy
    JAVA_OPTS
        9
    Cbdy   12 天前
    @hcymk2 这个方法我在 stackoverflow 上看到了,是可行但是 quick and dirty 的方法,java11 把 module 移除之后还是跑不了😳,有没有一劳永逸的方法呢?
        10
    beny2mor   12 天前
    Java9 和 Java10 都没有碰过,我们老大说先别管 Jva8 用着先
        11
    blindpirate   12 天前 via iPhone
    add-module java.xml.bind 把 java.xml.bind 加到 root modules 里
        12
    rffan   12 天前
    --add-modules=ALL-SYSTEM 我直接这么干的,简单粗暴。。。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   实用小工具   ·   649 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 19ms · UTC 20:11 · PVG 04:11 · LAX 13:11 · JFK 16:11
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1