zoukankan      html  css  js  c++  java
  • 使用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,终于结束,输出结果了。

  • 相关阅读:
    1062 Talent and Virtue (25 分)
    1083 List Grades (25 分)
    1149 Dangerous Goods Packaging (25 分)
    1121 Damn Single (25 分)
    1120 Friend Numbers (20 分)
    1084 Broken Keyboard (20 分)
    1092 To Buy or Not to Buy (20 分)
    数组与链表
    二叉树
    时间复杂度与空间复杂度
  • 原文地址:https://www.cnblogs.com/SamWeb/p/14988707.html
Copyright © 2011-2022 走看看