记事本方式编写Java文件,引入Jar包编译 & 运行 您所在的位置:网站首页 class文件怎么用记事本打开 记事本方式编写Java文件,引入Jar包编译 & 运行

记事本方式编写Java文件,引入Jar包编译 & 运行

2023-11-07 02:36| 来源: 网络整理| 查看: 265

    今天用记事本写一段Java代码,突然想到如果用记事本写java代码引入一个Jar包该怎么编译和运行呢?直接上手试一下。

1、文件目录

    即便是纯手写代码也要尽可能的去模拟一下真实的项目结构:

在这里插入图片描述

2、源码文件:Main.java

    一个简单的小实现:借助hutool工具包完成字符串首字母大写,并输出Hello World!     lib:存放jar包,hutool-all-5.4.0.jar

// 因为Main.java文件是直接写在src根目录下的所以并未执行package包路径 // 引入hutool工具包 import cn.hutool.core.util.StrUtil; public class Main { public static void main(String[] args) { // 调用hutool的StrUtil,完成对hello World!的首字母大写 System.out.println(StrUtil.upperFirst("hello World!")); } } 3、javac编译class文件

    要求编译后的class文件输出到classe目录中去。

javac -d classes -cp .\lib\hutool-all-5.4.0.jar .\src\Main.java 说明:     -d: 指定编译后文件的输出路径     -cp: 指定编译文件时(zip or jar包的扫描 路径)

编译成功后:会在classes文件中生成Main的class文件 在这里插入图片描述

4、java运行class文件

    通常地,在最开始学习用记事本写一段java代码输出Hello World!的时候,只要是编译成功了直接运行(java Main)就能得出结果,但是因为现在引入jar包的原因,直接运行:报错!在运行时找不到对应的class文件,可是明明已经打包成功了?那是因为在运行的时候没有在对应的classpath中找到hutool的工具包。 所以报错了,如果不报错,就需要找到它(废话文学!)     说到这就不得不扯一扯java.lang.NoClassDefFoundError和java.lang.ClassNotFoundException之间的区别了,可这是另外的价钱,想要了解的可自行百度(其实下文附有链接).

在这里插入图片描述

java -cp .\lib\hutool-all-5.4.0.jar;classes Main 说明: -cp:运行时需要扫描的文件路径 这里为什么要加上classes呢?因为class文件在里面,运行的时候需要去里面找Main文件这个程序入口。

注意文件路径:这决定着上面的运行命令怎么写。

在这里插入图片描述 成功输出:Hello World!

5、为什么想要写一段不借助开发工具的代码编译运行过程? 经常使用idea开发,可idea是怎么运行一个程序的呢? 下面是我截取的idea在运行程序时的命令行。 D:\java\jdk1.8\jdk1.8.0_65\bin\java.exe " -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.1.1\lib\idea_rt.jar=55592:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.1.1\bin" -Dfile.encoding=UTF-8 -classpath D:\java\jdk1.8\jdk1.8.0_65\jre\lib\charsets.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\deploy.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\access-bridge-64.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\cldrdata.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\dnsns.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\jaccess.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\jfxrt.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\localedata.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\nashorn.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\sunec.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\sunjce_provider.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\sunmscapi.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\sunpkcs11.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\ext\zipfs.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\javaws.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\jce.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\jfr.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\jfxswt.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\jsse.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\management-agent.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\plugin.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\resources.jar;D:\java\jdk1.8\jdk1.8.0_65\jre\lib\rt.jar;D:\WorkHourse\POIDemo\out\production\POIDemo;D:\WorkHourse\POIDemo\lib\poi-4.1.2.jar;D:\WorkHourse\POIDemo\lib\xmlbeans-3.1.0.jar;D:\WorkHourse\POIDemo\lib\poi-ooxml-4.1.2.jar;D:\WorkHourse\POIDemo\lib\hutool-all-5.4.0.jar;D:\WorkHourse\POIDemo\lib\commons-math3-3.6.1.jar;D:\WorkHourse\POIDemo\lib\commons-compress-1.19.jar;D:\WorkHourse\POIDemo\lib\poi-ooxml-schemas-4.1.2.jar;D:\WorkHourse\POIDemo\lib\commons-collections4-4.4.jar com.dongzi.excel.Main 时不时动手写一段HelloWorld,不至于忘记,也复习一下java命令,学习一下编译、运行的一些文件加载过程。 参考链接

用记事本写的java程序引用jar文件 关于怎么解决java.lang.NoClassDefFoundError错误



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有