相关疑难解决方法(0)

JPMS是否支持模块版本?

我认为JPMS不支持模块版本.但是,当我这样做时,java --list-modules我有以下输出:

java.activation@9
java.base@9
java.compiler@9
java.corba@9
java.datatransfer@9
java.desktop@9
java.instrument@9 
....
Run Code Online (Sandbox Code Playgroud)

所以,我无法理解这@9是什么.这个版本还是什么?如果JPMS支持模块版本,我可以在模块A的module-info中设置,模块A是否需要某个版本的模块B?

java java-9 java-module module-info

7
推荐指数
2
解决办法
415
查看次数

如何在Jdk9/java-9中解决module-info.java编译错误

我试图使用jdk-9在代码下运行,但在使用命令编译时遇到问题

命令

 javac -d mods .\module-info.java com\nirav\modi\Test.java
Run Code Online (Sandbox Code Playgroud)

错误

.\module-info.java:1: error: class, interface, or enum expected
module module1 { }
^
1 error
Run Code Online (Sandbox Code Playgroud)

module-info.java

module module1 { 

}
Run Code Online (Sandbox Code Playgroud)

Test.java

package com.nirav.modi;

class Test {

    public static void main(String args[]){

        System.out.println("Hello Modular...");

    }

}
Run Code Online (Sandbox Code Playgroud)

包结构如下

module1\module-info.java
module1\com\nirav\modi\Test.java
Run Code Online (Sandbox Code Playgroud)

JDK版本

java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+153)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+153, mixed mode)
Run Code Online (Sandbox Code Playgroud)

java openjdk java-platform-module-system java-9

6
推荐指数
2
解决办法
2370
查看次数

使用Java 8 update101时,HashMap.entries无法强制转换为Collection

更新到Java 8更新101后,我在以下代码中遇到异常.它与Java 8更新91一起工作正常.

访问密钥库:

        KeyStore ks = KeyStore.getInstance("WINDOWS-MY");
        ks.load(null, null);

        Field field =  ks.getClass().getDeclaredField("keyStoreSpi");
        field.setAccessible(true);

        KeyStoreSpi kss = (KeyStoreSpi) field.get(ks);

        Collection entries;

        field = kss.getClass().getEnclosingClass().getDeclaredField("entries");
        field.setAccessible(true);

        // This is where the exception happens
        entries = (Collection) field.get(kss);

        // I then have to loop on these entries, something like this:

        for (Object entry : entries) { //code }
Run Code Online (Sandbox Code Playgroud)

类型转换,抛出异常:

java.util.HashMap cannot be cast to java.util.Collection
Run Code Online (Sandbox Code Playgroud)

Java 8更新101中最近的任何更改?怎么解决?

java java-8

3
推荐指数
1
解决办法
4594
查看次数