ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java、javac、javap指令应用

2021-12-05 10:03:55  阅读:240  来源: 互联网

标签:文件 java javac jar HelloWorld javap jvm class


        在日常工作中,我们新建java工程,写好代码后,现在编译和运行几乎都是通过ide(如eclipse)工具完成。但作为java开发者还是要了解下java虚拟机指令。通过javac和java执行编译java文件和运行class以及jar文件。以windows系统为例解析javac和java指令的使用过程。

步骤一:通过eclipse新建java工程

步骤二:新建Java工程后,在src目录下新建jvm包

步骤三:在jvm包先新建HelloWord.java类,打印“hello world!“,代码如下。我们这里需要注意的是这里需要注意HelloWorld类的package包名。

 

步骤三:通过javac指令对HelloWorld.class文件进行编译具体操作过程如下:

        1.打开cmd命令,输入javac指令,如果提示命令找不到,则需要配置java路径。具体配置过程参考以下连接: win10报错jar不是内部或外部命令,也不是可运行的程序_lvxiucai的博客-CSDN博客_jar不是内部或外部命令,也不是可运行的程序        如果比较懒不想配置也没关系,直接通过cd命令进入安装java路径的bin目录,在bin目录下执行javac命令,如图

        2.如果java路径已配置好,则可直接通过cd命令进入java代码所在目录,如图所示。其中javademo为工程名,jvm为包名。 

        3.当HelloWorld.java代码写好后,我们可以通过javac指令对java文件进行编译,生成class文件,如图。这里需要注意的是生成的class文件和java文件在同一目录下,如图。

 步骤四:java指令的使用

        1.如果直接在当前目录下执行java HelloWorld会提示找不到或无法加载主类,如图所示。但实际情况是HelloWorld.class文件在当前目录下是真是存在的。此时,如果我们直接进入到src目录下,再执行java jvm.HelloWorld就能正常执行(所以这里一定要注意包名)。

 

        2.如果java类是有多个,这个时候我们在打包的时候就需要将多个文件(不管是class文件或者是java文件)打成jar包,打jar包的命令即为jar命令。例如将HelloWorld.class打成一个jar包,然后再通过命令行的形式运行jar文件,输出HelloWorld.        

        2.1.在打jar包的时候需要注意,不能在jvm目录下面执行,这里需要退到jvm的上级目录,在上级目录执行jar cvf hello.jar jvm执行,这样就可以将jvm目录下的所有文件一起打成一个jar包了。

        2.2打成jar包后,我们直接在src目录下执行java –jar hello.jar指令,这个时候是没办法直接运行jar包的,会出现jar包中没有主清单属性类型这样的报错信息。

         2.3.此时就需要我们手动维护jar包中的MANIFEST.MF文件,在MANIFEST.MF文件中维护好Main-class配置,配置信息如下,Main-class配置的是启动类,这里需要写好路径名称,如jvm.HelloWorld。配置修改后的MANIFEST.MF文件如下所示。再次执行java指令提示执行成功。

        2.4.由于MANIFEST.MF文件比较弱,所以在修改MANIFEST.MF的过程中,一定要注意空格。如果出现类似Error: Invalid or corrupt jarfile hello.jar这种错误如图所示。这种情况一般就是MANIFEST.MF文件的格式不对,常见的错误有该有空格的地方没有空格,不该有空格的地方出现空格了。一般修改过程是直接通过zip压缩工具打开jar包后,选中MANIFEST.MF文件,用记事本打开,修改后直接保存。这时候会自动将变化后的.MF文件会写到jar包中。

         3.class文件是由java文件经过java虚拟机编译后生成的指令集文件,如果想查看指令集详细信息可以通过javap -c HelloWorld.class或者javap -c -verbose HelloWorld.class指令查看。

        4. 如果需要查看class文件的二进制字节码信息,可以直接将class文件拖到sublime中打开,这里推荐一下sublime,感觉用户交互确实挺好。

 

 

 

 

标签:文件,java,javac,jar,HelloWorld,javap,jvm,class
来源: https://blog.csdn.net/sunny_daily/article/details/121725464

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有