zoukankan      html  css  js  c++  java
  • Java程序编译和运行的过程


    编译和运行过程可参考:


    https://blog.csdn.net/cynhafa/article/details/82425456

    eclipse 和linux 下启动java程序详解

    一、eclipse 中 run as 》java Application 运行程序

    执行的就是 class文件,使用的依赖就是maven Dependencies 下的jar。


    run as 》run configurations 里面配置了 main 主函数, classpath 配置了class路径和依赖的jar路径,如果是maven 依赖jar路径 就是 maven Dependencies 里的jar。

    如果没有class文件就会报 加载不到主类。


    猜测:run as 》java Application 应该是调用 jdk 的 java.exe 来执行的程序,并且传递了run configurations 里面配置的参数。

    二、 linux 下 java -jar xxx.jar 启动jar包


    调用ava.exe运行jar文件中的class,
    可运行的jar包中都有一个META-INF/MANIFETS.MF文件,其中配置了运行入口类,版本信息、classpath等信息。

    jdk中工具javac.exe ,java.exe,jar.exe 的使用详解

    一、javac.exe编译java文件
    javac test.java


    二、java.exe 运行class文件
    执行带main方法的class文件,命令行为:
    java <CLASS文件名>
    注意:CLASS文件名不要带文件后缀.class


    java test
    java com.ee2ee.test.PackageTes

    三、java.exe运行jar文件中的class
    java -cp test.jar com.ee2ee.test.PackageTest


    四、jar.exe 打jar包

    jar cvf 生成jar包的完整名称 要生成的class文件所在目录以及名称

    例如: jar cvf d:/test.jar e:/review/coreJava/chapter4/Employee.class 表示将目录e:/review/coreJava/chapter4下面的Emlopyee.class生成jar文件并存放在d盘下面的test.jar里面。


    jar.exe是jdk中的自带的压缩解压工具,Eclipse中的Export功能可以导出jar包,或者手动打可运行的jar包,都是用的jar.exe,只是做成了图形化的界面而已,当然jdk中也提供了压缩解压的api,比如:ZipFile、ZipEntry、ZipOutputStream等,我们也可以自己实现一个图形化的压缩工具。

    应用场景:1.sdk开发中需要导出自己的jar包提供给第三方使用;2.替换各种压缩文件中文件,比如Android开发过程中多渠道打包,渠道信息是在assets中配置文件读取的,这时候就要循环替换assets中的配置文件,我们知道apk中放到assets目录下的文件时没有经过编程处理的,所以替换其目录下的文件就可以直接用jar命令来实现,而不用先将apk反编译,这样可以节省用时。

    基本常识:

    1.各种文件xxxx.jar、xxxx.rar、xxxx.war、xxxx.zip、xxxx.apk的本质都是压缩文件,只是用到的压缩算法可能不同;

    2.java中的jar包是可以直接运行的,可运行的jar包中都有一个META-INF/MANIFETS.MF文件,其中配置了运行入口类,版本信息、classpath等信息。

  • 相关阅读:
    P3157 [CQOI2011]动态逆序对
    P2468 [SDOI2010]粟粟的书架
    P2564 [SCOI2009]生日礼物
    P2698 [USACO12MAR]花盆Flowerpot
    【2018 Multi-University Training Contest 6】
    【HDOJ6351】Beautiful Now(贪心,搜索)
    【HDOJ6354】Everything Has Changed(计算几何)
    【2018 Multi-University Training Contest 5】
    【HDOJ6319】Ascending Rating(单调队列)
    【Educational Codeforces Round 48】
  • 原文地址:https://www.cnblogs.com/luckyna/p/15503250.html
Copyright © 2011-2022 走看看