(七)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组 ...
随机推荐
- 理解JS引擎的执行机制
首先,请牢记2点: (1) JS是单线程语言 (2) JS的Event Loop是JS的执行机制.深入了解JS的执行,就等于深入了解JS里的event loop 1.灵魂三问 : JS为什么是单线程的 ...
- ThinkPHP5通过composer安装Workerman安装失败问题(避坑指南)
$ composer require topthink/think-workerUsing version ^2.0 for topthink/think-worker./composer.json ...
- Python 必备面试基础知识-3
今天继续分享 Python 相关的面试题,你准备好了嘛! 网络编程篇 1. 简述 OSI 七层协议 是网络传输协议,人为的把网络传输的不同阶段划分成不同的层次. 七层划分为:应用层.表示层.会话层.传 ...
- 前后端分离————VUE+node(express)
前后端分离----VUE+node(express) vue作为前端的框架,node(express)作为后端的框架.无数据库,使用端口保存数据. VUE: 使用vue-cli构建vue项目(vuea ...
- httprouter框架 (Gin使用的路由框架)
之前在Gin中已经说到, Gin比Martini的效率高好多耶, 究其原因是因为使用了httprouter这个路由框架, httprouter的git地址是: httprouter源码. 今天稍微看了 ...
- LitePal的修改和删除操作
转载出处:http://blog.csdn.net/guolin_blog/article/details/40083685 传统的修改和删除数据方式 上篇文章中我们已经得知,SQLiteData ...
- 50个实用的jq代码段整理
个人博客: http://mcchen.club 1. 如何创建嵌套的过滤器: //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查 ...
- A-07 前向分步算法
目录 前向分步算法 一.前向分步算法引入 二.前向分步算法详解 2.1 加法模型 2.2 加法模型目标函数优化问题 三.前向分步算法流程 3.1 输入 3.2 输出 3.3 流程 更新.更全的< ...
- Git版本控制之ubuntu搭建Git服务器
Git是一个开源的分布式版本控制系统,可以有效.高效的处理从很小到非常大的项目版本管理.使得开发者可以通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库,也可以将代码提交到Git服务 ...
- Color Length UVALive - 5841
题文:见网页:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=sho ...