手动执行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.Hellocom.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程序部分业务转化到本地程序执行
- 手动执行java命令的四种方法总结(类,jar包的手动执行)
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- java命令执行jar包的方式
- uboot 下基于usb 和 fat32 升级模块的设计和实现
- paip.提升用户体验---搜索功能设计
- Android架构详解
- 鸡蛋饭
- 使用NSOperationQueue简化多线程开发
- 手动执行java命令的四种方法总结(类,jar包的手动执行)
- 薄荷花开
- html5练习——登录页面
- Apache Httpd的mod_proxy模块修改了HTTP的响应吗
- 如何使用WINSOCK Api hook拦截修改socket数据包
- 七夕怀念
- Java Interface
- 使用Restlet创建一个简单的web service(Creating a simple web service with Restlet)
- proxool详细配置