一.命令行执行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运行命令前,设置了环境变量
相关推荐
dos命令测试java jar文件 命令行下运行JUnit测试 命令运行java
通过jar生成可执行的jar文件 将您要打包成jar的class文件放到D盘的temp目录下(也可以自定义) 在cmd命令行中键入如下指令: 1. 进入temp目录:cd tmep 2. 输入打包jar命令:jar -cvfe test.jar JFrameDemo3 . (点...
1.使用命令行时,当转某个类失败时将继续,而不退出程序 2.解决读取class annotation 的一个问题 Fixes issue 42 ...6. 执行jd-gui,找到刚才生成的JAR文件,打开之。 7. 偷偷乐吧,90%以上的Java源代码跃然眼前.
smali-1.2.6.jar 用途:.smali文件 转成 classes.dex文件 说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改。 用法举例:命令行:java -jar smali.jar classout/ -o classes.dex ...
本工具是采用jvmti方式对Class文件进行加密,使用C++生成加密和解密库,先用加密库对Jar包进行加密,将加密后的Jar包及解密库文件发布出去,执行时候需要JVM引入解密库文件,解密后执行。c++的.dll文件和.so文件的...
dex2jar反编译步骤: 1、把 class.dex 拷贝到 dex2jar.bat 所在目录,直接拖动 class.dex 到 dex2jar.bat,生成 classes...6. 执行jd-gui,找到刚才生成的JAR文件,打开之。 7. 偷偷乐吧,90%以上的Java源代码跃然眼前.
执行完上面这行命令后,会生成一个out 文件夹里面是android123.odex的class文件。主意,最好把odex文件放到framework目录下执行上面的命令,免得报缺少类文件的错误。 3. 通过class生成classes.dex 文件。 java ...
最后发现dex2jar.bat不能直接拖到命令行执行,必须cd切换到dex2jar.bat所在目录下执行>dex2jar.bat classes.dex才行,希望对大家有帮助.. -------------------------------------------------------------------------...
执行完上面这行命令后,会生成一个out 文件夹里面是android123.odex的class文件。主意,最好把odex文件放到framework目录下执行上面的命令,免得报缺少类文件的错误。 3. 通过class生成classes.dex 文件。 java -...
解压后,将classes.dex拷贝到该目录下,在命令行进入该目录,执行:dex2jar.bat classes.dex,回车,可看到在该目录下生成了classes_dex2jar.jar文件。 3.解压jd-gui-0.3.3.windows.zip,打开此工具,然后选中上一步...
将classes.dex复制到解压后的dex2jar-2.0文件夹下。从命令行进入到该目录,执行 d2j-dex2jar.bat classes.dex 会生成由classes.dex反编译得到的jar文件,classes-dex2jar.jar。
可执行WAR文件的演示这是可执行WAR文件的演示。 它使用自定义类加载器从Web存档(WAR... JAR文件的典型位置没有MANIFEST.MF 。 它包含Main-Class条目,以表示包含main()方法的类。 此外,还有一个Bootstrap类,负责从备
java类源码类查找器工具介绍 Java Class-Path告诉Java在文件系统上哪里可以找到定义这些类的文件。 对于通用Java应用程序,基于这些路径项序列,从jar文件或类...通过指定jar文件,classfinder支持两种方式。 将ja
jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高。可惜用起来不太方便。还好找到eclipse下的插件,叫jadclipse,安装好之后,只要双击。tech.Phontol.comclass文件,就能直接看源文件,包括jar...
ad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的。不过因为是控制台运行,所以用起来不太方便。不过幸好有一个eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看...
本程序可以加密整个目录下的class文件(当选择文件夹的时候,就是加密整个目录下的class文件),或者整个jar文件! 运行方式: 运行时,要能正确的加载加密后的class文件,必须使用我们提供的动态链接库classloader....
android-svg-code-render 介绍 该项目的目的是创建一个(基于Java的)工具,...该工具可以使用标准Java JAR执行从命令行运行: java -jar android-svg-code-render <inputfile> [-p ] [-c <class>] [-o <outputfi
gradle jar : 在bin/jar文件夹中构建一个 jar 文件。 gradle test :运行所有单元测试。 gradle -Dtest.single=SomeTest test :运行特定的测试。 gradle javadoc : 生成 Javadoc html 页面。 gradle coverage :...
C:\lib\abc.jar 指定jvm寻找.class文件路径的方法有三种,分别是从当前目录下寻找、某个文件夹下寻找或在链接库的jar文件中寻找。 同样,使用命令行指定classpath的方式优先于从系统读取classpath环境变量。 7...
简单文字编辑器用于HTML验证器/编辑器的编工具项目代码演示下载Jar文件并双击运行或从命令行运行java -jar SimpleJavaTextEditor.jar 或者在提取的文件夹上运行ant,将在该文件中创建一个dist文件夹(注意-使jar文件...