博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA 命令行运行
阅读量:6091 次
发布时间:2019-06-20

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

hot3.png

说到Java命令行运行,我们就不得不谈到String[] args, 我在这篇文章中的例程,已经演示了如何利用String[] args的值传到程序里面。那么关于Java命令行运行的指令到底是什么样的呢?

基础编译与运行命令

假设我们有一个文件叫做name.java, 且我们已经cd到这个文件的根目录中,那么编译这个文件用到的命令是:

javac name.java 

执行完这条语句之后,就会生成name.class文件,也就是java字节码文件, 然后我们用:

java name

即可完成对字节码文件的运行。

没有package的情况

当一个java文件没有包的时候,直接用我们上面提到的方法就可以顺利运行。

有package的情况

在这种情况下,可以先按上面提到的方法先编译,然后cd到包路径的级别,然后进行下面的操作:

java packagename.name 

为什么用这种方法去加载运行一个类?很明显,在有包的情况下,在你尝试切入到文件所在目录去运行这个java文件的时候,会报出ClassLoader类的错误,这就意味着是类加载出了问题。熟悉类加载的同学应该都知道,类加载器在加载类的时候会根据你的 类全名+路径 进行加载,而当一个类拥有了包的时候,在它的类全名里面就会加上它的包名,所以你在根目录使用类全名加载肯定是不对的。所以我们要往上一层路径移动一下。

用命令行调用jar文件(无package的情况)

在目标文件的文件夹里面,将你想要打包的.class文件打成jar包。

jar -cvf test.jar name

修改jar文件中的META-INF/MANIFEST.MF文件

在最后加一行 Main-Class: name(注意:冒号和name间有一空格,否则报错-Invalid or corrupt jarfile C:/temp/bin/test.jar),然后回车,否则也报错-Failed to load Main-Class manifest attribute from

C:/temp/bin/test.jar

关于jar命令我们又有很多可以赘述的知识点,这里先略去,有时间有兴趣可再扩充。

用命令行调用jar文件(有package的情况)

基本步骤一样,就是在最后修改.MF文件的时候,需要写上类全名。

关于命令行赋值的问题

再啰嗦一句,我们传入的参数是String[ ]类型的,所以你只管在文件名后面继续输入你的变量就是了,java会自动将文件名后面的输入解析为输入的参数。

例如:java name my age is 18

name是我们的文件名,后面的四个字符串就组成了我们的String[] args。 

转载于:https://my.oschina.net/hunglish/blog/745263

你可能感兴趣的文章
阿里云产品
查看>>
ESXi磁盘块大小设立
查看>>
Java 初始化与清理
查看>>
C#计算数组的算术平均数、几何平均数、调和平均数、平方平均数和中位数
查看>>
JQuery Select控件操作汇总
查看>>
E媒体|APP必死?!——阿里百川项目总监承渊有话说
查看>>
Android 游戏之三人对战源码
查看>>
Lua与C++交互机制
查看>>
MDT2012制作模板机
查看>>
我的友情链接
查看>>
关于海量数据的数据模型
查看>>
缓存重要
查看>>
我的友情链接
查看>>
MYSQL驱动包升级到5.1.17版本之后会出现的问题
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
手工添加一个linux用户并能登陆
查看>>
如何删除Eclipse subclipse plugin中记住的SVN用户名密码
查看>>
烂泥:NFS做存储与KVM集成
查看>>
烂泥:puppet添加带密码的用户
查看>>