zoukankan      html  css  js  c++  java
  • LINUX系统下Java和Scala的环境配置

    最近,笔者在研究一个有关“自然语言处理”的项目,在这个项目中,需要我们用Spark进行编程。而Spark内核是由Scala语言开发的,所以在使用Spark之前,我们必须配置好Scala,而Scala又是运行在JVM上的,所以在配置Scala之前,先要配置好JDK。下面是我个人的一些总结。

    我是在Win7系统下开的虚拟机,虚拟机的系统是CentOS7,在创建虚拟机完成后,它会自带一个OpenJDK,我的版本是这样的:

    但是因为最开始不了解这个情况,所以我从官网上下载了jdk-8u73-linux-x64.tar.gz,并解压在/Downloads目录下。进入/etc/profile.d目录下,新建path.sh脚本文件,打开并配置环境变量如下图:

    在/etc/profile.d目录下,键入source path.sh命令,使配置生效。

    然而配置成功后,在控制台中键入java -version,依然会得到第一张图中的信息,后来发现在配置JDK之前,需要卸载系统自带的JDK。

    在控制台中键入java,会出现如下图所示的内容:

    但是不知道这些,只知道Java开发环境已经配置完毕,所以便开始找对应版本的Scala,我下载的是scala-2.10.5.tgz,并解压在/Downloads目录下。进入/etc/profile.d目录下,打开path.sh文件,配置Scala环境变量,如下图所示:

    在/etc/profile.d目录下,键入source path.sh命令,使配置生效。

    在控制台中键入scala -version和scala,会分别得到如下两张图中的内容:

      在各种项目中,我们常常需要用到文件操作,笔者在近期的项目中遇到了一个与文件操作相关的问题。

      在代码实现的过程中,笔者首先定义了一个文件路径:def PATH = "/a/b/c.txt"

      之后开始使用文件操作:val source1 = Source.fromFile(PATH)

      在for循环中,逐行读取文件、处理文件:for(line1 <- source1.getLines()) { // 逐行处理逻辑  }

      在这一轮对文件的各行处理之后,笔者希望再次对处理后的结果进行下一轮处理,所以再次使用了for循环:for(line1 <- source1.getLines())

      但是,结果显示,第二轮操作并没有真正实现。

      经过研究发现,在利用source对象读取完一遍文件后,它便指向了文件的尾部,再次调用for循环时,实际上没有进行任何操作,因为没有读入任何数据。

      解决方法是,重新实例化一个source2:val source2 = Source.fromFile(PATH)

      再次调用for循环:for(line2 <- source2.getLines())

      这样就可以实现再次对文件进行操作了。

  • 相关阅读:
    CSS基础
    AXIS2 开发笔记
    Tomcat和Weblogic下ajax或get中文乱码
    Jetty和Tomcat的选择:按场景而定
    分页
    windows linux 下,获取java项目绝对路径的方法
    oracle SQL
    ArrayUtils
    Xcode 调试技巧
    Core Data持久化数据存储(1)
  • 原文地址:https://www.cnblogs.com/yg6405816/p/5466879.html
Copyright © 2011-2022 走看看