使用javac编译工程

今天看到有一个利用原始的javac编译整个Java项目的专栏,然后就动手对使用javac来编译java工程进行了一下研究,一直都是使用IDE来搞java,对这些编译工程的细节还不是很了解,遂纪录之。

工程目录结构如下:
666132-20180309224024221-1724250468.png

App.java的内容如下:

package  com.oops;

public  class  App  {
    public  static  void main(String[] args)  {
        Orz  orz = new  Orz();
        orz.sayOops();
        orz.sayOrz();
    }
}

Orz.java的内容如下:

package  com.oops;

import  org.apache.logging.log4j.LogManager;
import  org.apache.logging.log4j.Logger;

public  class  Orz  {
    Logger LOGGER = LogManager.getLogger();

    public  void sayOrz()  {
        LOGGER.info("orz...");
    }

    public  void sayOops()  {
        LOGGER.info("orz...");
    }
}

这个项目引入了两个外部的jar包。
构建如下:

  1. 首先创建一个目录用于存放生成的class文件。
  2. 进入工程目录,然后运行编译命令,其中-d 参数指定编译结果的输出目录,-cp参数用于指定搜索引入外部包的路径,最后是需要编译的文件。
javac -d classes -cp lib\core.jar;lib\api.jar src\com\oops\*.java
  1. 进入classes目录,运行生成的class文件。注意,运行class文件时需要注意输入class的全限定名。如我们这里生成了一个叫做App.class的类文件,由于我们的App.java是在com.oops包下面的,所以运行的时候我们应该运行com.oops.App,同时还需要指定classpath。
java -cp .;..\lib\api.jar;..\lib\core.jar com.oops.App
  1. 在工程目录下面新建一个MANIFEST.MF文件。指定入口类,classpath。
Manifest-Version: 1.0  
Main-Class: com.oops.App
Class-Path: lib/api.jar lib/core.jar
  1. 进入classes目录,打包jar文件。
jar -cvfm demo.jar ..\MANIFEST.MF *
  1. 在classes目录下面,运行jar包。
 java -jar demo.jar
  1. 接下来需要学习一下使用ant和maven等构建工具了。

参考

JAR打包的误区:第三方包的嵌套打包
利用原始的javac编译整个Java项目
javac
JAVAC 命令详解

转载于:https://www.cnblogs.com/ZiYangZhou/p/8536828.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值