部署java程序-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

部署java程序

简介: 运行class 如何得到.class字节码? 答:进入MyClass.java 文件所在目录,执行 javac    -d    directoryToPut\   MyClass.java。表示编译MyClass.java类,生成MyClass.class文件放在directoryToPut\目录下。 如何运行.class文件? 答:java执行jar包本质仍是执行.

运行class

微笑如何得到.class字节码?
答:进入MyClass.java 文件所在目录,执行 javac    -d    directoryToPut\   MyClass.java。表示编译MyClass.java类,生成MyClass.class文件放在directoryToPut\目录下。

微笑如何运行.class文件?
答:java执行jar包本质仍是执行.class文件。直接执行指定class文件可以用 java -classpath(等价于-cp)  路径  含Main函数的类名。注意只要类名不要.class后缀。例子见图1。

图1 java -cp 命令

如果自己的.class有其他的依赖,可以在多个classpath之间用冒号分隔,如 java -cp ./lib/*:../lib/*  MainClassName

运行jar

微笑如何得到jar?

答:eclipseIDE中,右击项目名,导出为可执行jar包。

微笑如何运行jar?

答:控制台运行。进入jar所在目录, java-jar xxx.jar 就可以啦,见图2。


图2 java -jar 命令

-D参数

用于给应用程序配置一些属性。例:

java -D myConfig="d:/config/config.xml" myApp
这样在myApp中就可以通过System.getProperty("myConfig");获得这个值了。

微笑xx.jar的结构是怎样的?

答:可执行jar其实是个压缩目录,可以用2345好压打开。里面有MANIFEST.MF文本文件,它规定了程序的入口。里面有一行(没有也可以自己随便修改)Main-Class:,对应着要执行的.class文件。此例中可以设置为Main-Class: com.abc.Hello。

jar包有两种,一种放的是.class文件,分布在相应的文件夹中。另一种是.java源文件,也分布在相应的文件夹中。
网上的开源项目解压后一般都有src文件夹、含.class的xx.jar和含.java 的XX-source.jar。若没有XX-source.jar而我们又想追踪源码,可以手动把src文件夹压缩为jar。

微笑运行jar中指定的类。

java -cp XX.jar com.likeyichu.yourclass

可执行jar的依赖处理

用eclipse导出可执行jar包,有三个选项,见图3。

图3 可执行jar的打包选项
第一种:没有我们的jar里面没有xx.jar,相当于全部解压。
第二种:我们jar里面有依赖的各种xx.jar。
第三种:我们的jar里面只有自己的源文件,其他的打包到另一个文件夹。之所以这样还能运行,因为meta_inf文件有配置classpath,见图4.

图4 META_INF/MANIFEST依赖环境说明
第三种最为灵活,因为很少改动依赖关系,而自己的代码会经常修改。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: