(七)javac编译
文章目录
所有操作在window下完成。
1.基本格式
javac [目标路径] [源文件]
目标路径即编译结果存放位置,后续详细讲解。源文件则为编译所需的原始文件,包括*.java 和jar包。
2.目标路径
目标路径为编译完成后*.class文件存放位置。
2.1 缺省项
目标路径可省略。如果省略则存放在当前位置。(前提是在当前目录运行cmd)。
javac Test.java
2.2 指定路径
指定路径需要参数-d,几种形式如下所示:
2.2.1 全路径
javac -d E:\javactest\ Test.java
生成的文件放在E:\javactest\下。
2.2.2 相对路径
(一)生成文件放在当前目录下,如果Test.java中如果有包名,则在子文件下。
javac -d . Test.java
(二)生成文件放在当前目录下classes,如果Test.java中如果有包名,则在子文件下。
javac -d ./classes Test.java
(三)生成文件放在当前目录下classes,如果Test.java中如果有包名,则在子文件下。
javac -d classes Test.java
3.源文件
源文件包括自己的*.java文件以及jar包。单个文件直接放文件名即可。
3.1 无第三方库
无第三方库时直接加文件,不同源文件之间用空格分开,对于含有空格的文件路径需要双引号。
3.1.1 基本方法
javac -d ./classes Test.java Test01.java
3.1.2 添加目录
除添加Test.java Test01.java两个文件外,还需要将当前目录src中所有*.java文件编译。
javac -d classes Test.java Test01.java src/*.java
3.1.3 添加大量文件
当大量文件存在时可将所有文件位置放在一个文件下,并采用@添加此文件。文件形式如下所示。

下述命令 会将Test.java 以及filelist.txt下所示所有文件打包。
javac -d classes Test.java @filelist.txt
3.2 添加第三方库
通过-classpath后者-cp添加。
3.2.1 基本方法
javac -d classes -classpath XXXX.jar @filelist.text
3.2.2 添加多个文件
用分号添加多个文件
javac -d classes ;XXXX.jar;d:\XXX\*.jar @filelist.text
4.生成jar包
通过如下命令即可生成jar包,即将classes\com\ii\LL01下的class打包成test.jar
jar cf test.jar classes\com\ii\LL01
(七)javac编译的更多相关文章
- javac编译不同目录的源码提示找不到符号
对于单个文件的且不引用其他类文件的java源码用javac编译大家都很熟悉即 javac mycode.java 但是如果这个文件引用到了其他的类文件,在进行编译的时候就会提示找不到符号,这时我们需要 ...
- javac 编译与 JIT 编译
编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤进行: 其中绿色的模块可以选择性实现.很容易看出,上图中 ...
- Javac编译和JIT编译
编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤进行: 其中绿色的模块可以选择性实现.很容易看出,上图中 ...
- javac编译原理(一)
我们都知道,计算机只能识别二进制语言,是不能直接识别java c c++等高级语言的.将高级语言转化成计算机可以是别的二进制语言,这个过程就叫编译. 有次面试,面试官问了一道“java的编译原理是什么 ...
- Javac编译与JIT编译
本文转载自:http://blog.csdn.net/ns_code/article/details/18009455 编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的 ...
- Linux下使用javac编译
Linux下使用javac编译Hadoop程序 首先要配置好Hadoop, 给出两个教程 Hadoop安装教程单机/伪分布式配置Hadoop2.6.0/Ubuntu14.04 Hadoop集群安装配置 ...
- 使用javac编译zookeeper项目
这里记录zookeeper编译源代码上的一些细节的问题. 网上不少关于如何使用ant eclipse来构建zookeeper对应的eclipse工程的记录.这里就不再过多赘述.只做简单阐述. 这里主要 ...
- 【深入Java虚拟机】之七:Javac编译与JIT编译
转载请注明出处:http://blog.csdn.net/ns_code/article/details/18009455 编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理 ...
- javac编译后运行提示找不到或无法加载主类
第一种常见错误: package demo_01; public class hello { public static void main(String[] args) { System.out.p ...
- Javac编译原理 《深入分析java web 技术内幕》第四章
javac编译的四个主要的流程: 词法分析器:将源码转换为Token流 将源代码划分成一个个Token(找出java语言中的关键字) 语法分析器:将Token流转化为语法树 将上述的一个个Token组 ...
随机推荐
- 记一次java-selenium自动抢红包最简单案例1
案例网址:http://xinyue.qq.com/act/pc/xyjf/a20170907envelopes/index.htm?ADTAG=AD_gw.home.pt.2_dyghb.20170 ...
- 在Debian上用FVWM做自己的桌面
用FVWM做自己的桌面 Table of Contents 1. 前言 2. 学习步骤 3. 准备 3.1. 软件包 3.2. 字体 3.3. 图片 3.4. 参考资料 4. 环境 5. 布局 6. ...
- rt.jar包添加源文件只需要关联到已安装对应jdk目录下source.zip源码文件即可
项目中配置的JRE System Libriry下的rt.jar包,需要关联源文件时候,只需要点击“Attach Source...“按钮,选择"External File..." ...
- Mycat 关键特性
关键特性 支持SQL92标准 支持MySQL.Oracle.DB2.SQL Server.PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理. ...
- 深入集合类系列——ArrayList和Vector的区别
区别: 1)Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性 ...
- 体验Code::Blocks下的C++编程
0.前言 在当前的行业发展和国际形势下,让更多的程序员思考跨平台编程问题.在众多的跨平台开发环境中,Code::Blocks具有独特的优势. 近二十年来,跨平台开发环境曾经如雨后春笋般产生,但是,由于 ...
- 微信小程序开发实战-天气小程序
园龄6年8个月了,还一篇文章都没写过,惭愧! 最近周末做了个天气预报小程序,在这里整理一下开发过程和注意点,给对小程序开发感兴趣的伙伴们提供点参考. 废话不多说,先上图最终效果: 下面进入正文: 第一 ...
- yii2 qq邮箱配置发送
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'useFileTransport' =>false,//这句一定有,false ...
- python 处理excel踩过的坑——data_only,公式全部丢失
用openpyxl读取excel的load_workbook有个data_only参数. yb_wb = load_workbook(u"D:\\Desktop\\xxx.xlsx" ...
- kotlin系列文章 --- 1.初识kotlin
简介 Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由Jetbrains设计开发,现在是Android官方开发语言,和Java具有互操作性,可以共存. 为什么选择kotlin? 简 ...