博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
命令行下Java的编译及运行(1)
阅读量:4121 次
发布时间:2019-05-25

本文共 1639 字,大约阅读时间需要 5 分钟。

 当前大部分开发者在开发Java程序时使用Eclipse,它可以方便的进行程序的编译、打包和运行。但是不使用IDE,在完全的命令行下进行Java开发者从未用过的。在命令行下进行开发不是用来在展现自己有多牛,而是通过命令行开发,可以对Java的编译、jar包等各个部分有一个深入了解。
  下面的几篇博客将会对Java的编译、打包和运行方法由浅入深的进行介绍。
  在这里使用的操作系统是Linux,并提供相应的shell和python脚本。

  首先介绍一下三个常用的命令:javac、jar、java。每个命令都有不同的参数,这些参数的用法会详细介绍。

  1. javac
  javac的功能是对java源代码进行编译,将后缀为.java的文件编译为.class的文件。javac的一般格式是
  javac <选项> <源文件>
  例如:
  javac Main.java
  会产生Main.class文件。
  
  javac的常用选项有:
  -classpath <路径>      指定查找用户类文件的位置 
  -cp <路径>                指定查找用户类文件的位置(与上面的选项一样,cp是classpath的简写
  -d <目录>                指定存放生成的类文件的位置
  2.jar
  jar的功能是根据选项将指定的一些.class文件打包为一个jar包。jar的一般格式是
  jar {ctxui}[vfm0Me] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
  例如,
  jar cvf Test.jar Main.class Bar.class
  它将Main.class和Bar.class打包为一个文件Test.jar。
  jar命令的选项比较多,用到选项包括: 
  -c  创建新的归档文件
  -t  列出归档目录
  -x  从档案中提取指定的 (或所有) 文件
  -u  更新现有的归档文件
  -v  在标准输出中生成详细输出
  -f  指定归档文件名
  -m  包含指定清单文件中的清单信息
  -e  为捆绑到可执行 jar 文件的独立应用程序,指定应用程序入口点
  -C  更改为指定的目录并包含其中的文件,如果有任何目录文件, 则对其进行递归处理。
  例如,
  上例中的cvf参数,分别表示创建新的jar文件、创建时显示jar包的信息(可以执行看一下)、指定jar包名为Test.jar。
  jar tf Test.jar      查看Test.jar的内容,其中t表示列出jar包内容,f指定jar包名
  jar xf Test.jar      解压Test.jar文件
  jar xf Test.jar Main.class      仅解压Test.jar中的Main.class文件
  这里要指出的是,f/m/e都指定一个名称(jar包名, 清单文件名和入口点名称),相应的名称顺序与参数的顺序要一致。
  3.java
  java的功能是执行应用程序。java的一般格式是
  执行一个类:    java [ options ] class [ argument ... ]
  执行一个jar包:java [ options ] -jar file.jar [ argument ... ]
  例如:
  java Main
  执行Main.class,注意上面没有.class后缀
  java Test.jar 
  执行一个jar包,这个jar包中要指定了程序入口点(通过在MANIFEST.MF文件中指定)。
  常用的java的选项:
  -classpath<类搜索路径>    指定用户类文件的位置,可能为文件夹、zip、jar文件
  总结
  通过这篇内容,我们应用学会了如何使用javac编译自己的类,并使用java执行自己的类。但是关于打包的操作及jar的执行比较复杂,将在以后继续介绍。
转自:

转载地址:http://asspi.baihongyu.com/

你可能感兴趣的文章
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>
python猜拳游戏
查看>>
python实现100以内自然数之和,偶数之和
查看>>
python数字逆序输出及多个print输出在同一行
查看>>
苏宁产品经理面经
查看>>
百度产品经理群面
查看>>
去哪儿一面+平安科技二面+hr面+贝贝一面+二面产品面经
查看>>
element ui 弹窗在IE11中关闭时闪现问题修复
查看>>
vue 遍历对象并动态绑定在下拉列表中
查看>>
Vue动态生成el-checkbox点击无法选中的解决方法
查看>>
python __future__
查看>>
MySQL Tricks1
查看>>
python 变量作用域问题(经典坑)
查看>>
pytorch
查看>>
pytorch(二)
查看>>
pytorch(三)
查看>>
pytorch(四)
查看>>
pytorch(5)
查看>>
ubuntu相关
查看>>