手动执行java命令的四种方法总结(类,jar包的手动执行)

来源:互联网 发布:php sso单点登录 编辑:程序博客网 时间:2024/05/03 17:46

1.最常用的一种方式:java 全限定名

//源代码:

package com.zizhu;public class Hello {public static void main(String args[]){System.out.println("Hello,World!! java command");}}

java com.zizhu.Hello

当然,如果你使用的IDE,例如eclipse,那么你必须先切换到bin目录下:

cd D:\Java\WorkSpace\Hello\binD:java com.zizhu.Hello

2.如果Hello.java依赖与某个jar包,该怎么执行?例如Hello依赖于log4j.jar包

//源代码:

package com.zizhu;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class Hello {private static Log log = LogFactory.getLog(Hello.class);public static void main(String args[]){log.debug("Hello,World!! java command");}}

此时,bin目录下新建一个lib包,把log4j.jar和commons-loggin.jar放进去,执行如下命令:

cd D:\Java\WorkSpace\Hello\binD:java -classpath lib/commons-logging-1.0.4.jar;lib/log4j-1.2.16.jar; com.zizhu.Hello

注意点:jar后面必须要有分号,否则,肯定执行不了;如果执行不了,我的建议是把jar包名字改了,版本号去掉,尽量别包含特殊字符,这样更容易成功,至少spring的jar包全称跟上我从来没有执行成功过,但把名字变短,没有".",没有特殊字符之后,一下就成功了

3.java命令执行jar包(包含main函数):

//源代码:

package com.zizhu;public class Hello {//private static Log log = LogFactory.getLog(Hello.class);public static void main(String args[]){//log.debug("Hello,World!! java command");System.out.println("command: java -jar test.jar");}}

a.首先需要将这个类打成jar包:

cd D:\Java\WorkSpace\Hello\binD:jar cvf test.jar *

b.然后用WinRAR软件打开jar包,找到/META-INF下的清单文件,添加属性:

Main-Class: com.zizhu.Hello
注意点:1.Main-Class:冒号后面一定要空格,不然不行的;2.com.zizhu.Hello后面一定要回车,不然也不行;那么最后的这个清单文件应该是这样的:

Manifest-Version: 1.0Created-By: 1.6.0_24 (Sun Microsystems Inc.)Main-Class: com.zizhu.Hello
com.zizhu.Hello后面这个回车没有显示出来,但一定需要添加,否则,必定执行不了,至少我测出来就是执行不了;添加好之后,保存,WinRAR会提示覆盖原来的清单文件,确定就行了

c.执行这个jar文件:

java -jar test.jar

4.如果自己打包的这个jar文件还依赖其他的jar包,该怎么执行?

//源代码:

package com.zizhu;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class Hello {private static Log log = LogFactory.getLog(Hello.class);public static void main(String args[]){log.debug("command: java -jar test.jar");}}

当然首先还是将Hello类打包,然后修改清单文件:

添加Main-Class属性和Class-Path属性:

Manifest-Version: 1.0Created-By: 1.6.0_24 (Sun Microsystems Inc.)Main-Class: com.zizhu.HelloClass-Path: lib/log4j.jar lib/commons-logging.jar

同样,该空格的地方空格,该回车的地方回车,最后覆盖,跟3的步骤一样,最后执行
java -jar test.jar

四种执行java类,jar包的方式基本结束,当然还有自定义加载器,可以参考我另一篇文章,成功的将web程序的某一部分业务转换成了windows本地任务,而这个web程序的业务逻辑使用了spring的jar包,hibernate的jar包,总共在WEB-INF/lib下一共有71个jar包,都是使用自定义加载器加载,然后利用反射成功调用web的业务逻辑,也是手动执行java命令,手动执行,详情参见:自定义ClassLoader详解_将web程序部分业务转化到本地程序执行

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 初中政治总考不好怎么办 孩子上初一学习越来越差怎么办 胸经过整容后变得胸闷怎么办? 网瘾高中不学习怎么办 犯罪人逃到美国怎么办 10岁儿童偏胖怎么办 土地面积与实际面积不符怎么办 军转进省直单位双选失败怎么办 房改房楼龄到了70年怎么办 商品房房改房到70年后怎么办 公务员未享受房改政策怎么办 两套房改房违规怎么办 法院保全的物品在我家怎么办 西瓜视频答题结束了钱没提现怎么办 诚信答题密码忘了怎么办 我未成年杀了人怎么办 错过了网课考试怎么办? 2018广东省普法考试0分怎么办 小孩错过了小升初的考试怎么办 错过了自主招生考试怎么办? 科目一考试错过了时间怎么办 中学生网瘾怎么办济南远大认真 u盘安装不了系统怎么办 对敏感脆弱的青春期孩子怎么办? 脸变得很交黑怎么办 玩手机长痘痘了怎么办 青少年左侧后背突发疼痛怎么办 纵欲过度导致青少年白发怎么办 20岁了不想长大怎么办 网吧老板跑路了怎么办 网吧玩地下城卡怎么办 个人公积金封存之前厂子欠费怎么办 学生欠了2万块怎么办 玉米去完库存量cool怎么办 幸福蓝海电子券过期怎么办 幸福蓝海国际影城会员怎么办 幸福蓝海会员卡过期了怎么办 电机线圈处于平衡位置怎么办 混联电路求电功率最小怎么办 电脑超出工作频率范围怎么办 手机红外线感应器坏了怎么办