java 命令行进行代码编译

java 命令行进行代码编译

  • 20180615 lambo init

测试目录结构

  • root/src/com/Main.java
  • root/conf/aa.conf
  • root/lib/aa.jar
  • root/classes

编译 javac

  • 收集java文件路径
  • javac编译

windows 代码

1dir /b src\\*.java/s > srcList.txt 2javac -encoding UTF-8 -cp .;/lib/aa.jar -d classes @srcList.txt

linux 代码

1find src -name *.java > srcList.txt 2javac -encoding UTF-8 -cp .:/lib/aa.jar -d classes @srcList.txt

打成jar包

 jar -cf xx.jar -C classes . -C conf .

打包成可执行包

ps -e参数可以指定main-class, 注意com.Main位置,不可变。-e 取第一个class作为main-class;

jar -cfe xx.jar com.Main -C classes . -C conf .

命令帮助

javac命令

1用法: javac <options> <source files> 2其中, 可能的选项包括: 3 -g 生成所有调试信息 4 -g:none 不生成任何调试信息 5 -g:{lines,vars,source} 只生成某些调试信息 6 -nowarn 不生成任何警告 7 -verbose 输出有关编译器正在执行的操作的消息 8 -deprecation 输出使用已过时的 API 的源位置 9 -classpath <路径> 指定查找用户类文件和注释处理程序的位置 10 -cp <路径> 指定查找用户类文件和注释处理程序的位置 11 -sourcepath <路径> 指定查找输入源文件的位置 12 -bootclasspath <路径> 覆盖引导类文件的位置 13 -extdirs <目录> 覆盖所安装扩展的位置 14 -endorseddirs <目录> 覆盖签名的标准路径的位置 15 -proc:{none,only} 控制是否执行注释处理和/或编译。 16 -processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程 17 -processorpath <路径> 指定查找注释处理程序的位置 18 -parameters 生成元数据以用于方法参数的反射 19 -d <目录> 指定放置生成的类文件的位置 20 -s <目录> 指定放置生成的源文件的位置 21 -h <目录> 指定放置生成的本机标头文件的位置 22 -implicit:{none,class} 指定是否为隐式引用文件生成类文件 23 -encoding <编码> 指定源文件使用的字符编码 24 -source <发行版> 提供与指定发行版的源兼容性 25 -target <发行版> 生成特定 VM 版本的类文件 26 -profile <配置文件> 请确保使用的 API 在指定的配置文件中可用 27 -version 版本信息 28 -help 输出标准选项的提要 29 -A关键字[=] 传递给注释处理程序的选项 30 -X 输出非标准选项的提要 31 -J<标记> 直接将 <标记> 传递给运行时系统 32 -Werror 出现警告时终止编译 33 @<文件名> 从文件读取选项和文件名

jar 命令

1用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 2选项: 3 -c 创建新档案 4 -t 列出档案目录 5 -x 从档案中提取指定的 (或所有) 文件 6 -u 更新现有档案 7 -v 在标准输出中生成详细输出 8 -f 指定档案文件名 9 -m 包含指定清单文件中的清单信息 10 -n 创建新档案后执行 Pack200 规范化 11 -e 为捆绑到可执行 jar 文件的独立应用程序 12 指定应用程序入口点 13 -0 仅存储; 不使用任何 ZIP 压缩 14 -P 保留文件名中的前导 '/' (绝对路径)".." (父目录) 组件 15 -M 不创建条目的清单文件 16 -i 为指定的 jar 文件生成索引信息 17 -C 更改为指定的目录并包含以下文件 18如果任何文件为目录, 则对其进行递归处理。 19清单文件名, 档案文件名和入口点名称的指定顺序 20'm', 'f''e' 标记的指定顺序相同。 21 22示例 1: 将两个类文件归档到一个名为 classes.jar 的档案中: 23 jar cvf classes.jar Foo.class Bar.class 24示例 2: 使用现有的清单文件 'mymanifest'25 将 foo/ 目录中的所有文件归档到 'classes.jar' : 26 jar cvfm classes.jar mymanifest -C foo/ .
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )