将.jar添加到类路径(Scala) [英] Adding .jar's to classpath (Scala)

查看:89
本文介绍了将.jar添加到类路径(Scala)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我一直在尝试使用信号收集框架和我下载了 .jar 文件并将其解压缩到一个文件夹中。目前文件夹结构如下所示:

So I've been trying to work with the signal-collect framework and I downloaded the .jar files and extracted it into a folder. Currently the folder structure looks like:

LICENSE.txt  
PageRank.scala  
core-1.1.1-sources.jar  
dependencies/  
javaapi-1.1.1-sources.jar  
NOTICE.txt  
README.txt  
core-1.1.1.jar  
javaapi-1.1.1-javadoc.jar  
javaapi-1.1.1.jar  

其中 PageRank.scala 是他们提供的Scala测试代码,即:

Where PageRank.scala is the Scala test code they provide, which is:

import com.signalcollect._

object PageRank extends App {
  val graph = GraphBuilder.build
  graph.addVertex(new PageRankVertex(id=1))
  graph.addVertex(new PageRankVertex(id=2))
  graph.addEdge(new PageRankEdge(sourceId=1, targetId=2))
  graph.addEdge(new PageRankEdge(sourceId=2, targetId=1))
  graph.execute
  graph.foreachVertex(println(_))
  graph.shutdown
}

class PageRankVertex(id: Any, dampingFactor: Double=0.85)
    extends DataGraphVertex(id=id, state=1-dampingFactor) {
  type Signal = Double

  def collect(oldState: Double, mostRecentSignals: Iterable[Double]): Double = {
    1 - dampingFactor + dampingFactor * mostRecentSignals.sum
  }

}

class PageRankEdge(sourceId: Any, targetId: Any)
    extends DefaultEdge(sourceId, targetId) {
  type SourceVertex = PageRankVertex

  def signal(sourceVertex: PageRankVertex) = {
    sourceVertex.state * weight / sourceVertex.sumOfOutWeights
  }

}

我是JVM / Java / Scala的新手,这是我尝试添加 .jar的到类路径编译 PageRank.scala

I am a newbie when it comes to the JVM/Java/Scala, and this was my attempt at adding the .jar's to the classpath for compiling PageRank.scala:

$ scalac -classpath *.jar dependencies/*.jar PageRank.scala 
error: IO error while decoding core-1.1.1.jar with UTF-8
Please try specifying another one using the -encoding option
error: IO error while decoding javaapi-1.1.1-javadoc.jar with UTF-8
Please try specifying another one using the -encoding option
error: IO error while decoding javaapi-1.1.1-sources.jar with UTF-8
Please try specifying another one using the -encoding option
error: IO error while decoding javaapi-1.1.1.jar with UTF-8
Please try specifying another one using the -encoding option
error: IO error while decoding dependencies/je-3.2.76.jar with UTF-8
Please try specifying another one using the -encoding option
error: IO error while decoding dependencies/scala-library-2.9.1.jar with UTF-8
Please try specifying another one using the -encoding option
6 errors found

我无法弄清楚出了什么问题......发生了什么事?
谢谢!
问候,
-kstruct

I cannot figure out what is going wrong... what's happening? Thanks! Regards, -kstruct

推荐答案

您需要将两个类路径路径作为单个参数传递。

You need to pass both classpath paths as a single argument.

试试这个:

$ scalac -classpath "*.jar:dependencies/*.jar" PageRank.scala
$ scala -classpath "*.jar:dependencies/*.jar" PageRank
PageRankVertex(id=2, state=0.9999999999999997)
PageRankVertex(id=1, state=0.9999999999999997)

它对我有用。

这篇关于将.jar添加到类路径(Scala)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆