首页 > 编程语言 > 详细

Java 命令行 编译、执行、打包

时间:2020-02-19 21:00:15      阅读:48      评论:0      收藏:0      [点我收藏+]

Java 命令行 编译、执行、打包

一般来说 IDE 能够很方便的编译打包。
我写这篇文章是遇到了不能使用 IDE 的情况,本着够用就行的原则简单记录一下操作命令,不做深入探讨。
了解一下也没有坏处。

环境

linux
jdk 1.8

简单的编译执行

# 创建演示目录
/usr/local/mytest
# 创建代码目录
/usr/local/mytest/src
# 创建代码包路径
/usr/local/mytest/src/com/demo

# 进入演示目录
cd /usr/local/mytest

创建文件 src/com/demo/Hello.java,文件内容

package com.demo;

public class Hello {
    public static void main(String[] args) {
        System.out.println("hello");
    }
}

最终,mytest 目录下的结构
技术分享图片

编译文件

javac src/com/demo/Hello.java

生成 src/com/demo/Hello.class 文件
执行

java -cp src com.demo.Hello

-cp src 把 src 目录添加为 classpath 目录
可以看到输出 hello

打包

打包只应该包含 class 文件,所以我们创建一个目录 target

mkdir /usr/local/mytest/target

编译指定输出到 target 目录

javac src/com/demo/Hello.java -d target

可以看到,新生成的 .class 在 target 下面
技术分享图片

打包,-C target . 指定把 target 下所有文件打包

jar -cvf my.jar -C target .

可以看到,当前目录多了 my.jar 文件
技术分享图片

尝试执行

java -jar my.jar

报错 my.jar中没有主清单属性,这不是可执行 jar 包
需要这样执行,把 my.jar 添加到 classpath,指定执行 com.demo.Hello

java -cp my.jar com.demo.Hello

如何打可执行的 jar 包

创建 /usr/local/mytest/MANIFEST.MF 文件,文件名任意,内容:

Main-Class: com.demo.Hello

这个内容告诉 jar 包,com.demo.Hello 是入口

打包时添加 m 参数,并附带刚才创建的文件

jar -cvfm my.jar MANIFEST.MF -C target .

再次执行 my.jar

java -jar my.jar

成功输出 hello

Java 命令行 编译、执行、打包

原文:https://www.cnblogs.com/eoalfj/p/12332808.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!