使用VS Code 学习算法(第四版)
最近在学习算法(第四版),书中一直在使用命令行来执行Java程序,而使用Eclipse时,很难使用命令行,或者说我根本就不会用,于是就想研究一下使用VS Code来编写代码,使用命令行来执行程序。看了一下官网,就知道了安装Java Extension Pack。 打开VS Code, 在插件中搜索Java,

点击install, 等待安装完成。现在就要用最原始的方式来编写Java 程序了。创建一个空文件夹,然后用VS Code打开该文件夹,创建一个Evaluate.java文件,直接把书上的代码复制过来(截取部分代码如下),
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut; // ..... while(!StdIn.isEmpty()) {
String s = StdIn.readString();
// .......
StdOut.println("S");
}
这个类中使用了algs4.jar中的StdIn和StdOut类,VS Code中,这部分代码标红了,它没有办法解析包和类。这是肯定的,因为包还没有引入。那怎样才能引入包,在Evaluate类中正确使用algs4.jar中的类呢?想的第一件事,就是把algs4.jar放到根目录下,也就是和Evaluate类同一级目录,

因为CLASSPATH设置了.; 表示当前文件夹,我想,Java在编译的时候应该会从当前文件夹开始寻找包,然后进行编译。我错了,Java 编译直接报错了。

Java 应该是从当前文件夹开始寻找类,不会寻找包。当然,第二件事就是把algs4.jar放到CLASSPATH中。在Linux下找到 .bashrc, sudo mousepad .bashrc。 mousepad是 Linux Lite 下面的文本文件查看器。输入密码,打开文件。输入密码时,要注意,只有在英文输入法下输入,才没有问题,在中文输入法下输入密码,竟然不正确。此时光标在等待

在文件的最后
export CLASSPATH=.:$JAVA_HOME/lib:/home/sam/jar/algs4.jar
/home/sam/jar/algs4.jar就是algs4.jar所在的路径。点击保存,关闭文件,此时光标停止。这时要重新开一个命令行窗口(文件--> 打开终端), 然后source .bashrc

再重新打开VS Code。这时VS Code中并没有变化,代码还是标红,难到CLASSPATH 没有设置成功? 打开VS Code中的terminal, echo $CLASSPATH

有了啊,可以看到CLASSPATH中有了algs4.jar,设置成功了。从理论上来说,任何Java程序都可以找到并使用algs4.jar 中的类。尝试编译一下,javac Evaluate.java,成功了,但VS Code中标红还是看着不舒服。此时,看到VS Code的左下角有一个JAVA PROJECTS, 点击一下,展开它

这和Eclipse很像,Referenced Libraries不就是引入的第三方jar包吗?鼠标移上去,出现了一个+号,鼠标放到+号上,显示“Add Jar Library to Project Classspath”, 点击它,弹窗,直接定位到当前文件夹下的algr4.jar,

选中这个jar,并点击弹窗下的Select Jar Libraries, 弹窗关闭,添加成功,当然,你可以添加任意路径下的jar包

同时VS Code中多了一个.vscode文件夹,点击,打开它,一个settings.json文件

它定义的就是Java项目所引用的包,此时VS Code中的标红终于消失了。

这时,是不是可以把CLASSPATH 中的algs4.jar去掉,我试了一下,不可以,java无法编译。看了一下文档,说是要在项目根目录添加.classpath 文件,然后把包加入进去,我试了很久,怎么都设置不成功。不过看文档,发现了VS Code 默认会从项目根目录下的lib目录下引用jar,也就是说,我们可以不用像上面一样手动添加第三方jar包。再新建一个项目,然后编写Evaluate.java,再新建lib目录,把algs4.jar放入进去,可以看到VS Code中没有任何错误提示

VS Code自动把lib下面的jar包放到了Referenced Libaray下面。javac Evaluate.java, 编译成功,生成了Evaluate.class,现在就要执行代码,书上的执行方式是

我先 java Evaluate ( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) ), 报错了

然后看到书上换行了,我就先输入java Evaluate,然后按Entter,再输入 ( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) ), 突然发现再按Enter没有办法结束了,光标一直向下,

这时想到了ctrl + d 或 ctrl+ z来结束输入,按ctrl + d,终于结束,输出结果了。

使用VS Code 学习算法(第四版)的更多相关文章
- 算法第四版jar包下载地址
算法第四版jar包下载地址:https://algs4.cs.princeton.edu/code/
- 算法第四版 在Eclipse中调用Algs4库
首先下载Eclipse,我选择的是Eclipse IDE for Java Developers64位版本,下载下来之后解压缩到喜欢的位置然后双击Eclipse.exe启动 然后开始新建项目,File ...
- 算法第四版-文字版-下载地址-Robert Sedgewick
下载地址:https://download.csdn.net/download/moshenglv/10777447 算法第四版,文字版,可复制,方便copy代码 目录: 第1章 基 础 ...... ...
- 二项分布。计算binomial(100,50,0.25)将会产生的递归调用次数(算法第四版1.1.27)
算法第四版35页问题1.1.27,估计用一下代码计算binomial(100,50,0.25)将会产生的递归调用次数: public static double binomial(int n,int ...
- 算法第四版学习笔记之优先队列--Priority Queues
软件:DrJava 参考书:算法(第四版) 章节:2.4优先队列(以下截图是算法配套视频所讲内容截图) 1:API 与初级实现 2:堆得定义 3:堆排序 4:事件驱动的仿真 优先队列最重要的操作就是删 ...
- 算法第四版学习笔记之快速排序 QuickSort
软件:DrJava 参考书:算法(第四版) 章节:2.3快速排序(以下截图是算法配套视频所讲内容截图) 1:快速排序 2:
- 算法(第四版)学习笔记之java实现希尔排序
希尔排序思想:使数组中随意间隔为h的元素都是有序的. 希尔排序是插入排序的优化.先对数组局部进行排序,最后再使用插入排序将部分有序的数组排序. 代码例如以下: /** * * @author seab ...
- 算法(第四版)学习笔记之java实现可以动态调整数组大小的栈
下压(LIFO)栈:可以动态调整数组大小的实现 import java.util.Iterator; public class ResizingArrayStack<Item> imple ...
- 配置《算法 第四版》的Eclipse开发环境
1. 安装JAVA JAVA网址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 配置环境变量(我把JAVA安装在 ...
- 算法第四版 coursera公开课 普林斯顿算法 ⅠⅡ部分 Robert Sedgewick主讲《Algorithms》
这是我在网上找到的资源,下载之后上传到我的百度网盘了. 包含两部分:1:算法视频的种子 2:字幕 下载之后,请用迅雷播放器打开,因为迅雷可以直接在线搜索字幕. 如果以下链接失效,请在下边留言,我再更新 ...
随机推荐
- ITSM2023年十大功能趋势[采和]
总体描述:更加人性化,引入自动化相关的设计和技术,更加实用好用.1. 100%服务目录服务目录必须完全贴合用户方的运维实际开展的 服务清单,而不是想当然的抄书或者臆想!都2023年了,还有完全不着调的 ...
- vue子组件给父组件传值
子组件: <template> <div class="app"> <input @click="sendMsg" type=&q ...
- Git/SourceTree版本管理
目录 视频课程: 工作区: 文件状态: 回退版本: 合并分支 合并提交 冲突 删除分支 忽略文件 汉英对照表 多端同步 添加远程仓库 推送代码到远程仓库 拉取代码 视频课程: https://www. ...
- Js实现抽奖转盘,和点击返回某个模块顶部的功能
最近写了几个转盘抽奖的活动页面: 1.设定旋转的角度: HTML部分:转盘代码: <div class="lottery"> <div class="l ...
- Ajax 请求总共有八种 Callback
1)onSuccess 2)onFailure 3)onUninitialized 4)onLoading 5)onLoaded 6)onInteractive 7)onComplete 8)onEx ...
- P3667 Bovine Genomics Hash+二分题解
砂金听说了你在学字符串,于是在CLOI里出了道题给你 P3667 Bovine Genomics 题链:洛谷 hzoi提高 \(hash\)基础题. 思路是二分答案,\(check\)中比较每一个区间 ...
- RemoteView 替代品和类似软件
RemoteView 是一款远程控制软件,使您可以通过Internet连接远程访问计算机和移动设备,而不受时间和地点的限制. 您可以快速,安全地实时轻松地控制计算机和移动设备. 您可以使用我们的iOS ...
- 一文读懂Spring的SPI机制
一. 从类加载说起 Java中的类加载器负载加载来自文件系统.网络或者其他来源的类文件.jvm的类加载器默认使用的是双亲委派模式.三种默认的类加载器Bootstrap ClassLoader.Exte ...
- SpringBoot使用@Value获取不到值的问题
背景 在一次SpringBoot项目改造为Cloud的过程中,使用Nacos作为配置中心获取属性,改造后程序启动报错,查看日志,定位到代码: 解决方案 如果了解Bean的生命周期的同学应该知道,Spr ...
- LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型
LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型 1.环境安装 # 设置pip全局镜像 (加速下载) pip config set global.index-url https:/ ...