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

Ubuntu命令行编译IntelliJ开发Java项目提示package不存在报错求助

错误原因
  • 仅编译了src根目录下的main.java,未包含ADT、FileIO、InteractiveMode等子目录下的Java源文件,对应包的类没有被编译,因此javac无法识别包定义
  • 依赖路径的通配符写法错误,原命令中lib/.jar的写法无法匹配任何jar包,同时未将当前src目录加入类路径,导致javac无法对应包目录结构
解决方法

1. 修正编译命令

在src目录下执行以下命令完成全量编译:

javac -cp .:javafx-sdk-17.0.0.1/lib/*:JavaFXSmartGraph-0.9.4/* $(find . -name "*.java")

参数说明:

  • -cp .:将当前src目录加入类路径,让javac可以匹配对应层级的包目录结构
  • 依赖路径直接用*匹配目录下所有jar包,无需额外加.jar后缀
  • $(find . -name "*.java"):递归查找当前目录下所有Java源文件,包含所有子包的代码全部加入编译队列

如果希望编译生成的class文件和源文件分离,可以添加-d参数指定输出目录,示例如下:

mkdir -p classes
javac -d classes -cp .:javafx-sdk-17.0.0.1/lib/*:JavaFXSmartGraph-0.9.4/* $(find . -name "*.java")

2. 执行运行命令

JavaFX 17属于独立外部模块,运行时需要额外指定模块参数,全量运行命令如下:

# 编译未指定输出目录时执行
java -cp .:javafx-sdk-17.0.0.1/lib/*:JavaFXSmartGraph-0.9.4/* --module-path javafx-sdk-17.0.0.1/lib --add-modules javafx.controls,javafx.fxml,javafx.graphics main

# 如果编译时指定了输出到classes目录,执行以下命令
java -cp classes:javafx-sdk-17.0.0.1/lib/*:JavaFXSmartGraph-0.9.4/* --module-path javafx-sdk-17.0.0.1/lib --add-modules javafx.controls,javafx.fxml,javafx.graphics main

可根据项目实际使用的JavaFX模块调整--add-modules后的模块列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:06:02