在 CentOS 上编译 Java 程序时,输出位置取决于你是 手动编译、用构建工具(Maven / Gradle),还是 看运行日志。下面分情况说明:
javac 手动编译javac HelloWorld.java
HelloWorld.class
javac -d ./target HelloWorld.java
输出在:
./target/HelloWorld.class
java 运行时的输出java HelloWorld
输出直接显示在 终端(stdout)
java HelloWorld > output.log
java HelloWorld 2> error.log
java HelloWorld > all.log 2>&1
mvn compile
target/classes/
mvn package
输出:
target/xxx.jar
mvn clean package > mvn.log 2>&1
gradle build
build/classes/
build/libs/
nohup java -jar app.jar > app.log 2>&1 &
tail -f app.log
如果是 systemd 管理的 Java 服务:
journalctl -u your-service-name -f
或查看配置中的日志路径:
ExecStart=/usr/bin/java -jar /opt/app.jar >> /var/log/app.log 2>&1
java -version
javac -version
javac → 只装了 JRE,需要安装 JDKls -l *.class
ls -l target/
| 场景 | 输出位置 |
|---|---|
| javac | 当前目录 / -d 指定目录 |
| java 运行 | 终端 / 重定向文件 |
| Maven | target/ |
| Gradle | build/ |
| nohup | 指定 log 文件 |
| systemd | journalctl |
如果你能贴出 具体命令或报错信息,我可以更精确地告诉你输出在哪、为什么没看到。