`
带我呼吸2013
  • 浏览: 4577 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

命令行执行class文件和jar文件

阅读更多

一.命令行执行class文件

 

在d:/test/lib目录下,有一个Mains.java文件

 

使用命令javac编译,执行成功:

D:\test\lib>javac Mains.java

 此时使用java命名行运行编译后的class文件,则报NoClassDefFoundError错误:

D:\test\lib>java Mains  
Exception in thread "main" java.lang.NoClassDefFoundError: Mains  
Caused by: java.lang.ClassNotFoundException: Mains  
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)  
        at java.security.AccessController.doPrivileged(Native Method)  
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)  
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)  
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)  
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)  
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 

 出现该异常,是因为环境变量不正确,将命令改为:

D:\test\lib>java -cp . Mains 

 则运行成功。

 

然后修改Mains.java源文件,在其中增加包说明:

package com.zhendao

 重新编译后,使用java -cp . Mains命令,执行失败。原因是名称错误,JVM运行class时,会检查包定义路径下是否有与类名相同的文件。因此这次需要将class文件放在 com/zhendao目录下。即:D:/test/lib/com/zhendao/Mains.class

 

然后在lib目录下重新运行:

D:\test\lib>java -cp . com/zhendao/Mains

 

二.命令行执行jar文件

命令行执行jar文件与执行class文件类似。不过有几个问题要注意一下:

 

1.如果使用eclipse打jar包,一定要设置Main Class:



 设置Main Class目的在于,运行jar包时,才能找到程序执行的入口。设置后,可在jar中(使用解压工具打开)有一个名META-INF的目录,该目录下有一个名为MANIFEST.MF的文件,其内容如下:

Manifest-Version: 1.0  
Main-Class: com.zhendao.Main 

 如果在打jar时没有设置Main Class,则该文件中没有Main-Class:com.zhendao.Main信息。

 

2.如果被执行的jar包还需要依赖其他第三方jar例如日志jar包或者数据库驱动jar包时,则需要手工修改上述的MANIFEST.MF文件,在其中增加Class-Path配置:

Class-Path: log4j-1.2.14.jar ojdbc14.jar  

 注意:多个jar之间使用空格分隔开。

 

然后使用命令执行jar包:

D:\test\lib>java -jar nr_daybar.jar  

 (其中的nr_daybar.jar是笔者打的示例jar包的名字)

另外,在网上查找资料时,看见有其他人并没有在MANIFEST.MF设置Class-Path,而是在执行java运行命令前,设置了环境变量

  • 大小: 60.9 KB
分享到:
评论

相关推荐

    修改jar包中的class文件

    当我们运行一个JAR文件时,Java虚拟机(JVM)会加载其中的class文件并执行其中的代码。 修改JAR文件中的class文件涉及以下几个步骤: 1. **解压JAR文件**:使用解压缩工具(如WinRAR、7-Zip或命令行的jar命令)将...

    将class文件打包成jar文件

    将class文件打包成jar文件是Java开发中常见的需求,尤其在使用WebService的SOAP协议时,为了实现远程调用,往往需要将本地的类文件(.class)打包成jar包进行分发。本文将深入探讨这一过程,包括手动压缩和利用...

    mybatis-generator命令行执行相关文件

    在命令行执行MBG,你需要指定`mybatis-generator.xml`的位置,然后调用Java的`-jar`选项运行MBG: ```bash java -jar mybatis-generator-core1.4.0.jar -configfile mybatis-generator.xml -verbose ``` 这将会根据...

    在jar包下找class文件

    在Java开发过程中,`jar`(Java Archive)文件是一种重要的归档格式,它用于集合多个`.class`文件,也就是编译后的Java源代码,形成一个单一的可执行文件。这有助于减少部署应用程序所需的资源数量,并方便分发。当...

    用java写的日历class文件和jar文件

    标题中的“用java写的日历class文件和jar文件”表明这是一个使用Java语言编写的日历应用,它包含了源代码以及编译后的可执行版本。这个程序可能是一个简单的命令行工具,也可能具有图形用户界面(GUI),用于展示和...

    教你怎样把class文件打成jar包--用java命令打包

    对于可执行的JAR文件,其中的`Main-Class`属性尤为重要,用于指定主类,即包含`main`方法的类。 #### 打包散落的单个或几个Class文件 假设你有以下两个`.class`文件: - `TurnD.class` - `TurnB.class` 它们位于`...

    dos命令测试java jar文件 命令行下运行JUnit测试 命令运行java

    总之,熟练掌握DOS命令来测试Java JAR文件和运行JUnit测试是Java开发者日常工作中不可或缺的部分。无论是进行简单的单个测试还是复杂的持续集成流程,都能大大提高代码质量并减少错误。通过不断地实践和学习,你可以...

    命令行下jar打包及运行

    在日常的软件开发过程中,我们经常需要将编写的Java程序打包为可执行的JAR文件,并且能够在命令行环境中直接运行这些程序。这种方式不仅可以提高工作效率,还便于进行自动化部署与测试。本文将详细介绍如何在命令行...

    jar 反编译.class文件 XJad

    3. **运行XJad**:使用命令行界面运行XJad,指定要反编译的.class文件路径。 4. **查看结果**:XJad会生成一个反编译后的源代码文件,通常以.java为扩展名。这些文件可以使用文本编辑器打开查看。 5. **处理子文件夹...

    JAR文件包及jar命令详解

    在命令行中,也可以使用以下命令来执行JAR文件: ``` java -jar test.jar ``` 这会根据`MANIFEST.MF`中的`Main-Class`启动程序。 **JAR文件的优势** - **跨平台性**:由于Java的“一次编写,到处运行”原则,JAR...

    使用Eclipse制作可执行jar文件

    制作完成的jar文件就是可执行的,使用命令行执行java –jar AAA.jar或javaw –jar AAA.jar就可以看到该程序被成功执行了。 十一、使用.bat文件执行jar文件 也可以为每一个可执行的jar文件创建一个.bat文件,其中的...

    Class文件反编译工具

    `.jar`文件则是一个集合,可以包含多个`.class`文件和其他资源,通常用于打包和分发Java应用程序或库。在某些情况下,我们可能需要查看或理解这些二进制文件的原始Java代码,这时就需要用到"Class文件反编译工具"。 ...

    class、jar文件编译器

    而这个“class、jar文件编译器”工具,可能就是一款整合了这些功能的实用软件,提供了便捷的编译和反编译解决方案,使得开发者无需记住复杂的命令行参数,只需通过图形用户界面就能完成相关操作。 总之,`class`和`...

    制作可执行的JAR文件包及jar命令详解.doc

    jar命令是Java开发工具箱中的一个命令行工具,用于创建、管理和操作JAR文件包。jar命令的基本语法如下: jar [-options] [jar-file] [manifest-file] [input-files] 其中,options是jar命令的选项,jar-file是生成...

    java 程序都编译成执行文件jar命令详解

    Java 程序通常以字节码(.class)的形式存在,为了便于分发和管理,我们可以将其打包成 JAR(Java Archive)文件。JAR 文件不仅是一个压缩格式,类似于 ZIP,它还包含了一个名为 `META-INF/MANIFEST.MF` 的特殊文件...

    class如何生成jar

    在Java开发中,`.jar` 文件(Java归档文件)是一种重要的打包格式,它不仅能够将多个 `.class` 文件封装在一起,还能包含资源文件和其他元数据,使得应用程序更易于部署和分发。下面我们将详细介绍如何创建 `.jar` ...

    可执行jar文件.以及执行命令

    可执行JAR(Java Archive)文件是Java编程语言中的一种归档格式,它允许将多个类文件和其他资源打包成一个单一的文件,便于分发和运行。在Java中,一个可执行JAR文件通常包含一个主类,这个主类包含了程序的入口点,...

    反编译jar文件,反编译.class文件

    本文将深入探讨如何反编译.jar文件和.java字节码文件(即.class文件),以便理解并可能修改已编译的Java代码。 首先,我们要明白什么是.jar文件和.class文件。.jar文件是Java档案文件,它包含一个或多个类文件,...

    Java反编译工具把.class文件转换为.java文件

    ### Java反编译工具:将.class文件转换为.java文件 #### 概述 在软件开发领域,有时我们可能需要分析第三方库或者开源项目的内部结构,这时就需要借助于反编译工具来帮助我们阅读和理解其源码。Java作为一种广泛...

Global site tag (gtag.js) - Google Analytics