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

无法在VSCode的JavaFX项目中集成Apache Commons VFS2库

解决VSCode中JavaFX Maven项目集成Apache Commons VFS2的模块访问问题

问题复现步骤

  • 在VSCode中创建JavaFX Maven项目:按Ctrl+Shift+P打开命令面板,选择Java: Create Java Project... -> JavaFx create from archetype,设置groupId为com.example,artifactId为demofx,选择本地文件夹,版本默认1.0 SNAPSHOT,确认后打开项目。
  • 在pom.xml中添加Apache Commons VFS2依赖:
<!-- Apache Commons VFS2 依赖 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-vfs2</artifactId>
    <version>2.9.0</version>
</dependency>
  • 重建项目后,在Java类中导入org.apache.commons.vfs2.FileObject和org.apache.commons.vfs2.FileSystemOptions时,出现错误:

The type org.apache.commons.vfs2.FileSystemOptions is not accessible Java(16778666)

  • 尝试在module-info.java中添加requires org.apache.commons;后,又出现模块无法解析的错误:

org.apache.commons cannot be resolved to a module Java(8389908)

项目配置文件

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>demofx</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>13</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>13</version>
        </dependency>
        <!-- Apache Commons VFS2 依赖 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-vfs2</artifactId>
            <version>2.9.0</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>11</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.6</version>
                <executions>
                    <execution>
                        <!-- Default configuration for running -->
                        <!-- Usage: mvn clean javafx:run -->
                        <id>default-cli</id>
                        <configuration>
                            <mainClass>com.example.App</mainClass>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

原module-info.java:

module com.example {
    requires javafx.controls;
    requires javafx.fxml;
    requires org.apache.commons;

    opens com.example to javafx.fxml;
    exports com.example;
}

问题原因

Apache Commons VFS2 2.9.0属于自动模块(未包含module-info.class),Java会根据JAR文件名自动推导模块名。该库的JAR文件名为commons-vfs2-2.9.0.jar,因此自动模块名是org.apache.commons.vfs2,而非之前写的org.apache.commons。同时JavaFX项目是模块化项目,必须在module-info.java中正确声明依赖模块,否则无法访问库中的类。

解决方案

  1. 修正module-info.java的依赖声明
    将错误的模块依赖替换为正确的名称:
module com.example {
    requires javafx.controls;
    requires javafx.fxml;
    requires org.apache.commons.vfs2;

    opens com.example to javafx.fxml;
    exports com.example;
}
  1. 清理并重建项目
    执行Maven命令清理缓存并重新构建:
mvn clean install
  1. 重启VSCode Java语言服务器
    按Ctrl+Shift+P打开命令面板,输入Java: Clean Java Language Server Workspace,确认后重启VSCode,确保配置生效。

验证

修改完成后,重新导入org.apache.commons.vfs2.FileObject和org.apache.commons.vfs2.FileSystemOptions,错误提示应该消失,项目可正常编译运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:12:51