cmd运行jar包报错找不到主类_算法4th0: 运行环境配置

本文档记录了在Idea中配置算法4环境的过程,包括JDK与IDEA的安装,algs4.jar的环境变量设置,以及如何在Idea中编写代码并使用命令行运行测试数据。作者通过实例介绍了如何解决配置和运行中的问题,强调了理解环境配置对于算法学习的重要性。
摘要由CSDN通过智能技术生成

前言

最近在阅读算法4th这本书,想着把笔记记录一下,以第一视角来整理。

当我第一次拿到书后,发现还需要按照书中网站提供了 jar 包时配置了很久发现很繁琐也没有配好。

然后我想着把 jar 包中的标准化输入输出融合到代码中,也就是在 Idea 中将代码框架写好,直接填关键代码,一键运行即可,但是想法很美好。后续我意识到了工作量之庞大。

当我把第二章排序完成后发现在这上面花费了大量的时间,如果将后续的都实现一遍则需要耗费更多的时间。

看这本书的目的是侧重于算法层面而非配置这些环境之上,而后续阅读之时没有测试数据无法检验算法的正确性又很难受,特别是官网已经造好了数据。

这篇文章则是我看书过程中记录的笔记以及踩过的坑

概述

环境:

  • Idea 2019.3.1
  • JDK 1.8
  • 测试数据[1]
  • 官方提供的 JAR 包[2]

前提是默认已经安装并配置好了 JDK 和 IDEA ,如果没有请先配置好再进行后续操作。

环境配置

首先确认 JDK 是否配置成功,以下是 win10 的配置流程。mac 只需要省略配置 JAR 包的环境变量这一步即可。

  • 快捷键 win + r 输入 cmd,调出命令行界面。

fa5c17699fde332424377bd174cbe9ea.png

  • 输入 java -version 输出如下结果说明安装成功。

1dfd61be44506a467e8793508b8a612e.png

  • 然后打开 idea 左上角 File -> NEW -> project 创建一个项目。

40387392209b80a884e92861b66e7c93.png

f894d84a104c75b5557285db82281dc7.png

  • 接下来注意点击左上角,接下来就是创建项目名称,自定义。

606587f869cb4014c76f16729c49d70d.png

  • 然后下载好的 algs4-data.zip 文件解压,将其中的文件放入 src 目录下。我的目录如下:

8a9f0437b696ab15567fb61366d82cb7.png

  • 然后再将 algs4.jar 包配置到环境变量中。我的 jar 包位置和工程路径如下:

5c9446f0ea4880a1e0e4612efe9d25c5.png

  • 将 algs4.jar 的路径存入 CLASSPATH 中即可,这一步同配置 JDK 路径类似,注意最后结束要写分号。

616411e28affba6606fe71bc1077be88.png

9386f5348e08fe410e9fedc73db2ff54.png

270d8470c407c8d2912d423060f385bf.png

运行代码

  • 算法4 第五页,书中的第一个例子,运行一下试试。可以直接 copy[3] 这里。

  • 有必要提前说一下我创建项目的文件结结构。txt 等数据文件都位于 src 目录下,代码都位于 src/com/company 目录下。com/company 是创建项目时默认的,我没有修改,你可以修改,但是修改后,下面使用终端编译时也要修改成对应的路径。

592b42b874821e04c417eddfd95cc5cf.png

  • 输入文件名 BinarySearchsrc/com/company 中创建成功。之后将代码 BinarySearch.java[4] 贴入,然后发现报错。

9912a193e54d84995a47f02adb4eff56.png

  • 此时先不管报错,因为缺少 algs4.jar ,所以先导入这个包。

7eac35d79713806b8e1faf89ea2718c5.png

  • 将 JAR 包添加到对应位置,apply ok 即可。

8a35172a080eb44c61d4e0f29669e94d.png

ebad2535dd1165f66956a375390b8fb3.png

  • 然后按 alter + enter 将用到 JAR 包中的类导入。

c7e52ce9cf735e02013154849a93c799.png

  • 然后打开左下角的 terminal 默认路径为当前的项目路径,使用命令 cd src 进入 src 文件中。因为测试数据放在了这里。

858f9da4e39792adf2c4d2f404ad80b2.png

  • 首先使用命令 javac com/company/BinarySearch.java 编译文件。
  • javac + 文件名 的作用是将源代码编译成字节码。
  • 然后使用命令 java com.company.BinarySearch largeW.txt < largeT.txt 运行,和书上第五页不同的是这里加上了路径,你也可以删除,com/company 文件夹,直接将文件BinarySearch.java 放入 src 目录下,那就和书中的命令一模一样了。
  • java + 文件名(不带.class 后缀) 是将字节码运行再虚拟机上。而后面对应的参数则是代码中对应的输入。

0c441fc50157b15a07d72446bef047d5.png

  • 运行后得到一堆数字说明运行成功。

96764b2e0cc95512ca4219f77c3d9e4a.png

再次测试

  • 再试一下第二章,熟练使用命令行。运行后发现排序成功,中间有坑注意善用搜索!

8663244c529ff62c2088ca8078f8a7db.png

总结

之前我是不想去配环境变量的,认为在 idea 中导入 jar 包后应该就可以直接使用。但是发现不行,命令行无法运行。

后来仔细想想觉得应该是当命令行在编译 JAR 包时会扫描 classpath 中的路径。而 algs4.jar 这个包不在其中必定出问题,idea 只是配置在其对应的配置文件中,在终端上并没有生效。

可以直接在 idea 中直接运行生成字节码,然后在 windows terminal 中导入测试数据进行测试,下一节就可以舒服的敲代码啦!

参考资料

[1]

测试数据: https://algs4.cs.princeton.edu/code/algs4-data.zip

[2]

官方提供的 JAR 包: https://algs4.cs.princeton.edu/code/algs4.jar

[3]

copy: https://algs4.cs.princeton.edu/code/edu/princeton/cs/algs4/BinarySearch.java

[4]

BinarySearch.java: https://algs4.cs.princeton.edu/code/edu/princeton/cs/algs4/BinarySearch.java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值