java: 程序包 jdk.incubator.vector 不可见 (程序包 jdk.incubator.vector 已在模块 jdk.incubator.vector 中声明, 但该模块不在模块图中)
时间: 2023-12-03 22:45:00 浏览: 94
这个问题的原因是 JDK 中的向量相关 API 在 JDK 16 中仍处于孵化阶段,所以需要手动启用它们。
你需要在编译和运行代码时加入以下参数:
```
--add-modules jdk.incubator.vector
```
如果你在使用 IDE,可以在项目的构建选项中添加该参数。如果你在使用命令行编译和运行代码,可以将该参数作为命令行参数传递。
另外,请确保你正在使用 JDK 16 或更高版本。
相关问题
spring-boot-maven-plugin配置编译打包jrt.jar,tools.ja
r和jrt-fs.jar文件,该如何配置呢?
首先,需要在pom.xml文件中添加以下插件依赖:
```xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<mainClass>com.example.Application</mainClass>
<layout>jre</layout>
<jvmArguments>--module-path ${java.home}/jmods --add-modules jdk.incubator.httpclient</jvmArguments>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.springframework.boot.experimental</groupId>
<artifactId>spring-boot-thin-layout</artifactId>
<version>${spring-boot.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
```
其中,`mainClass`需要指定Spring Boot应用程序的主类,`layout`需要设置为`jre`来使用JRE的模块路径,`jvmArguments`需要指定模块路径和添加的模块。
然后,需要在项目目录下创建一个`src/main/jdeps`目录,并将需要的模块依赖放入其中,例如`jdk.incubator.httpclient`。
最后,使用`mvn clean package`命令进行打包,即可得到一个包含`tools.jar`和`jrt-fs.jar`的可执行的`jrt.jar`文件。
import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse;爆红
这个问题可能是因为您的项目没有引入 Java 11 中新增的 Java网络客户端模块(java.net.http),或者您的 IDE 没有正确识别该模块。
如果您使用的是 Java 11 及以上版本,则可以在代码中添加如下语句来引入该模块:
```java
module yourModuleName {
requires java.net.http;
}
```
其中,`yourModuleName` 是您的项目的模块名称。
如果您使用的是 Eclipse 或者 IntelliJ IDEA,可以尝试更新 IDE 版本或者安装相应的插件来支持 Java 11 中的网络客户端模块。如果还是出现问题,可以尝试将代码中的 `import java.net.http.*;` 替换成 `import jdk.incubator.http.*;`,或者使用旧版的网络客户端 API(比如 HttpURLConnection)来解决问题。