温馨提示×

CentOS编译Java输出在哪看

小樊
70
2026-08-19 17:49:12
栏目: 编程语言

在 CentOS 上编译 Java 程序时,输出位置取决于你是 手动编译、用构建工具(Maven / Gradle),还是 看运行日志。下面分情况说明:


一、使用 javac 手动编译

1️⃣ 编译命令

javac HelloWorld.java

2️⃣ 输出文件在哪?

  • 默认位置:当前目录
  • 生成:
HelloWorld.class

3️⃣ 指定输出目录(推荐)

javac -d ./target HelloWorld.java

输出在:

./target/HelloWorld.class

二、使用 java 运行时的输出

1️⃣ 标准输出(System.out)

java HelloWorld

输出直接显示在 终端(stdout)

2️⃣ 重定向到文件

java HelloWorld > output.log

3️⃣ 错误输出(System.err)

java HelloWorld 2> error.log

4️⃣ 标准输出 + 错误输出

java HelloWorld > all.log 2>&1

三、Maven 编译(最常见)

1️⃣ 编译命令

mvn compile

2️⃣ 编译输出位置

target/classes/

3️⃣ 打包输出

mvn package

输出:

target/xxx.jar

4️⃣ Maven 日志

  • 终端直接显示
  • 可以重定向:
mvn clean package > mvn.log 2>&1

四、Gradle 编译

1️⃣ 编译

gradle build

2️⃣ 输出位置

build/classes/
build/libs/

五、后台运行 Java 程序(常见生产环境)

1️⃣ nohup 启动

nohup java -jar app.jar > app.log 2>&1 &

2️⃣ 查看输出

tail -f app.log

六、系统服务(systemd)

如果是 systemd 管理的 Java 服务:

journalctl -u your-service-name -f

或查看配置中的日志路径:

ExecStart=/usr/bin/java -jar /opt/app.jar >> /var/log/app.log 2>&1

七、常见问题排查

❓ 编译没反应?

  • 是否安装 JDK?
java -version
javac -version
  • 没有 javac → 只装了 JRE,需要安装 JDK

❓ 找不到 class 文件?

ls -l *.class
ls -l target/

总结速查表

场景 输出位置
javac 当前目录 / -d 指定目录
java 运行 终端 / 重定向文件
Maven target/
Gradle build/
nohup 指定 log 文件
systemd journalctl

如果你能贴出 具体命令或报错信息,我可以更精确地告诉你输出在哪、为什么没看到。

0 踩