Linux系统下Java程序编译步骤详解
Linux 编译 Ja va 的完整步骤 一 准备环境 万事开头先搭台。编译Ja va程序,第一步自然是安装Ja va开发工具包(JDK)。它包含了核心的编译器ja vac和运行时ja va。 在Debian或Ubuntu这类系统上,用包管理器安装最省事。打开终端,执行: sudo apt upda
Linux 编译 Ja va 的完整步骤
一 准备环境
万事开头先搭台。编译Ja va程序,第一步自然是安装Ja va开发工具包(JDK)。它包含了核心的编译器ja vac和运行时ja va。
在Debian或Ubuntu这类系统上,用包管理器安装最省事。打开终端,执行:
sudo apt update && sudo apt install openjdk-11-jdk
如果想安装发行版默认的JDK版本,直接用sudo apt install default-jdk也行。其他像Fedora、openSUSE或者Arch Linux,分别使用dnf、zypper、pacman这些对应的包管理命令来安装OpenJDK即可。
装好后,别忘了验证一下。分别运行ja va -version和ja vac -version,如果能看到版本号信息,说明安装成功。要是系统提示“command not found”,那可得注意了,这通常意味着JDK没装上,或者环境变量PATH没配置对。
二 命令行编译与运行
环境就绪,咱们就从最经典的“Hello World”开始,感受一下最直接的编译流程。
首先,准备好源码。创建一个名为HelloWorld.ja va的文件,记住,public class后面的类名必须和文件名完全一致。
接下来是编译。在源码所在的目录下,执行:
ja vac HelloWorld.ja va
顺利的话,你会看到一个HelloWorld.class字节码文件生成出来。运行它就用:
ja va HelloWorld
这里有个新手常犯的小错误:运行命令后面不要带.class后缀。
当然,实际项目不会这么简单。掌握几个常用的编译选项,能帮你应对更复杂的场景:
- 指定输出目录:用
ja vac -d bin HelloWorld.ja va,编译后的.class文件会整齐地放到bin目录里。 - 编译多个文件:可以用通配符
ja vac *.ja va,或者明确列出ja vac File1.ja va File2.ja va。 - 处理依赖:编译时需要外部JAR?加上
-cp参数:ja vac -cp lib/xxx.jar *.ja va。运行时也要带上类路径:ja va -cp .:lib/xxx.jar com.example.Main(注意,Linux下类路径分隔符是冒号:)。 - 指定版本:为了兼容性,可以用
-source和-target指定源码和目标字节码的Ja va版本,例如ja vac -source 8 -target 8 HelloWorld.ja va。 - 生成调试信息:方便后续调试,加上
-g选项:ja vac -g HelloWorld.ja va。 - 打包成JAR:将一堆
.class文件打包,使用jar -cvf app.jar *.class。如果JAR文件有主清单属性,可以直接用ja va -jar app.jar运行。
最后一个小提示:如果你的代码使用了包(package)结构,运行时必须使用主类的全限定名(即包含包名的完整类名)。同时,要确保目录结构和包名是对应的,或者更省事的办法,就是在编译时使用-d选项,让编译器自动帮你创建好目录树。
三 使用构建工具
对于正经的项目,手敲命令行编译效率就太低了。这时候,构建工具就该登场了。
Ma ven是目前最主流的构建工具之一,特别适合标准化的项目。安装很简单:
sudo apt install ma ven
在包含pom.xml文件的项目根目录下,执行mvn compile就能完成编译。想要打包?运行mvn package,成品(比如可执行的JAR)就会出现在target/目录下。
另一个历史更悠久的工具是Ant,它基于build.xml配置文件。安装命令类似:
sudo apt install ant
在项目根目录下直接运行ant,它会按照build.xml中定义的目标(如compile、jar)来执行任务。
四 多版本 JDK 与环境变量管理
有时候,不同项目可能需要不同版本的JDK。学会管理多版本和环境变量,是Linux下Ja va开发的必备技能。
首先,如何设置环境变量?以OpenJDK 11为例:
- 编辑用户的环境配置文件,比如
~/.bashrc:nano ~/.bashrc - 在文件末尾添加:
export JA VA_HOME=/usr/lib/jvm/ja va-11-openjdk-amd64 export PATH=$JA VA_HOME/bin:$PATH - 让配置立即生效:
source ~/.bashrc - 验证:分别执行
echo $JA VA_HOME和ja va -version,确认路径和版本正确。
在Debian/Ubuntu系统上,可以优雅地实现多版本共存与切换:
- 将某个JDK版本注册到备选方案中:
sudo update-alternatives --install /usr/bin/ja va ja va /usr/lib/jvm/ja va-11-openjdk-amd64 1 - 需要切换时,执行:
然后根据交互提示,选择你想设为默认的版本编号即可。sudo update-alternatives --config ja va
如果你手动下载了Oracle JDK的.tar.gz包,解压到比如/opt/jdk目录后,同样通过配置JA VA_HOME和PATH,并利用update-alternatives命令将其纳入统一管理,就能和其他版本无缝切换了。
五 常见问题与排查
编译路上难免踩坑,这里有几个典型问题的排查思路:
- “bash: ja vac: command not found”:这是最常见的问题。要么是JDK根本没安装,要么是
PATH环境变量没有包含$JA VA_HOME/bin目录。检查方法是分别运行ja va -version和ja vac -version,如果前者行后者不行,基本就是PATH配置问题,回头修正JA VA_HOME和PATH即可。 - “NoClassDefFoundError”或“ClassNotFoundException”:运行时抛出的这两个异常,通常指向类路径问题。要么是依赖的JAR包没被加入类路径,要么是目录结构不对。请务必检查运行时的
-cp参数是否正确包含了所有依赖项和类文件所在目录,并牢记Linux下的类路径分隔符是冒号:。 - 包与目录不一致:Ja va要求目录结构必须严格匹配包名。确保你的
.ja va文件放在正确的包目录下。一个省心的办法是编译时使用ja vac -d指定输出目录,编译器会自动按包结构创建文件夹。运行时,也必须使用完整的全限定类名。 - 版本不兼容:用高版本JDK编译的代码,可能在低版本JRE上跑不起来。解决办法是在编译时使用
-source和-target参数指定一个兼容的Ja va版本。或者,更直接一点,切换你的系统默认JDK版本,让它与项目要求匹配。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
IDEA中SpringBoot项目热部署实现指南
Springboot项目在IDEA中实现热部署需依次完成:开启自动编译(静态与动态编译)、启用热部署策略、引入spring-boot-devtools依赖、关闭浏览器缓存,最后启动测试即可生效,省去手动重启时间,大幅提升开发效率。
Java实现Excel转JSON的代码详解
使用Java结合FreeSpire XLS库可自动将Excel转为JSON,通过读取工作表并映射为键值对,高效支持数据迁移、报表导出与系统对接,大幅提升效率并消除手动录入错误。
Golang高效布谷鸟过滤器多字符集字符串过滤
布谷鸟过滤器支持删除操作,通过指纹截断与双哈希定位实现多字符集高效过滤。指纹截断需采用fnv64a或xxhash快速哈希并取低8位,桶索引使用独立双哈希避免假阳性。并发安全需以固定数组配合sync atomic实现。
Java使用Poi-tl按Word模板生成动态表格
Poi-tl是Word导出工具,文档周全,支持多级合并表头生成。通过{{text}}、{{?var}}、{{ table}}标签处理模板,传入TableRenderData对象即可动态渲染表格。示例展示用户信息表格生成,并提供工具类消除表格首行缩进,确保格式正确。
Go语言微服务集成Swagger生成交互式API文档完整教程
在Go微服务中集成Swagger常见四大问题:swaginit初始化失败需确保存在packagemain及注释;SwaggerUI加载失败因路由映射错误或未导入docs;@Param注解必须严格遵循格式;部署后接口文档显示localhost因硬编码host,应删除或通过环境变量动态注入。
- 热门数据榜
相关攻略
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:46
2026-07-11 06:46
2026-07-11 06:46
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

