在windows环境下,java编译生成的class文件是无法直接双击执行的。

需要使用java 命令来执行带有main方法的class文件

工具/原料

  • bat
  • java
  • dos

方法/步骤

  1. 1

    Windows下执行java代码编译生成的class文件的命令

    命令:

    java

    用法: java [-options] class [args...]

               (执行类)

       或  java [-options] -jar jarfile [args...]

               (执行 jar 文件)

  2. 2

    演示用的jar及相关配置文件的目录结构。

    demo很简单,就是点击按钮时,使用slf4j打印一行日志

  3. 3

    方法1:直接在cmd窗口执行java命令。lib后面是反斜杠

    命令:

    java -cp .;lib\*;JavaStudy.jar frame.App

  4. 4

    方法2:直接在cmd窗口执行java命令。lib后面是斜杠。算是替大家做个测试吧

    命令:

    java -cp .;lib/*;JavaStudy.jar frame.App

  5. 5

    分享一个出现错误的场景。命令中少了 ".;"

    命令:

    java -cp lib/*;JavaStudy.jar frame.App

  6. 6

    方法3:使用bat脚本。可以把刚才的可用的命令粘到bat脚本中。

    此处使用dos命令中的for来实现把jar文件添加到classpath中

    脚本内容:

    @echo off

    setlocal ENABLEDELAYEDEXPANSION

    set CP=.;JavaStudy.jar

    FOR %%j IN (%~dp0lib\*.jar) DO set CP=!CP!;%%j

    echo %CP%

    java -cp %CP% frame.App

  7. 7

    如果cp和jar option同时出现会怎么样呢?

    “ java.lang.NoClassDefFoundError”

    命令:

    java -cp .;lib\*;  -jar JavaStudy.jar

    异常详细信息:

    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/slf4j

    /LoggerFactory

            at frame.App$1.actionPerformed(App.java:25)

            at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

            at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

            at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

            at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour

    ce)

    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。