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

如何在Java模块化项目中通过SFTP下载文件?

解决模块化Java项目中SFTP下载及jlink打包问题

方案一:更换为支持模块化的SFTP库

  • Apache Mina SSHD:最新版本的org.apache.sshd:sshd-sftp自带module-info.java,完全适配模块化项目。直接在pom.xml中引入对应版本替换原有依赖即可,它的SFTP API和主流库用法一致,迁移成本极低。
  • 模块化分支版Jsch:用com.github.mwiede:jsch替代原Jsch,这是原项目的维护分支,专门补了模块化支持,API完全兼容,不用改业务代码,换个依赖坐标就行。

方案二:给非模块化库补全模块信息(无需换库)

不想换库的话,用Moditect Maven插件给Jsch、Apache Commons Net这些无module-info的jar生成模块描述符:

  1. 在pom.xml里配置Moditect插件,指定要处理的依赖(比如jsch),设置自动模块名(比如com.jcraft.jsch)。
  2. 执行mvn moditect:add-module-info生成带module-info.java的修改版jar。
  3. 再运行mvn javafx:jlink,此时这些库已是合法模块化jar,就能正常打包。

方案三:改用jpackage打包(兼容自动模块)

嫌上面步骤麻烦的话,直接用jpackage替代纯jlink。jpackage能基于你的可执行jar(含自动模块依赖)生成带JRE的安装包/镜像,对自动模块兼容性更好,不用强制所有依赖都是模块化的。执行mvn javafx:jpackage并配置好参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:18:19