试图安装WebGraph来运行一个类

时间:2014-02-20 20:10:28

标签: java maven

我是mvn和Java的新手,我想安装http://search.maven.org/#search|ga|1|a%3A%22webgraph%22并且我已经将它作为依赖项添加到我的mvn项目中 - 确实有效。但是我需要从这个包运行一个类,我已经尝试过运行(正如它在这个网站上所说:http://law.di.unimi.it/tutorial.php - 我正在尝试运行WebGraph框架)

F:\mgr\from_maven>java -cp webgraph-3.3.1.jar it.unimi.dsi.webgraph.BVGraph -o -
O -L uk-2007-05@100000
Exception in thread "main" java.lang.NoClassDefFoundError: it/unimi/dsi/lang/Fly
weightPrototype

但是你可以看到它给了我错误,我想要包含依赖文件,这样就不会出现错误,问题是有很多依赖文件,所以很难。我怀疑必须有更简单的方法。在这个网站上,他们会将其作为

运行
java it.unimi.dsi.webgraph.BVGraph -o -O -L basename

但是java找不到这个类。

有人能告诉我怎么做吗?我将不胜感激。

由于

3 个答案:

答案 0 :(得分:0)

您可以使用依赖:maven的copy-dependencies目标。它会将所有依赖项下载到目标下的文件夹中。然后添加类路径前缀作为该文件夹将解决问题。要在清单中添加前缀,可以使用如下所示的smt。

 <configuration>
    <archive>
       <manifest>
         <addClasspath>true</addClasspath>
         <classpathPrefix>lib/</classpathPrefix>
       </manifest>
    </archive>
 </configuration>

这里将它设置为lib,但您可以将其更改为依赖项生成的文件夹名称:copy-dependencies。

答案 1 :(得分:0)

不知道他们是如何在他们的网站上做到的,但是我创建了简单的bat脚本来运行这个具有所有依赖性的类:

@echo off
java -classpath collections-generic-4.01.jar;colt-1.2.0.jar;commons-collections-20040616.jar;commons-configuration-1.8.jar;commons-io-2.4.jar;commons-lang-2.6.jar;commons-math3-3.2.jar;concurrent-1.3.4.jar;dsiutils-2.1.8.jar;fastutil-6.5.12.jar;guava-16.0.1.jar;jsap-2.1.jar;jung-algorithms-2.0.1.jar;jung-api-2.0.1.jar;jung-io-2.0.1.jar;log4j-over-slf4j-1.7.6.jar;logback-classic-1.1.1.jar;logback-core-1.1.1.jar;slf4j-api-1.7.6.jar;stax-api-1.0.1.jar;sux4j-3.0.10.jar;webgraph-3.3.1.jar it.unimi.dsi.webgraph.BVGraph -o -O -L %1

使用script.bat basename

运行

答案 2 :(得分:0)

首先,使用maven dependency下载eclipse或IntelliJ(我使用过的)中的所有必要文件。

让我们假设webgraph-3.0.9.jar和所有必需的依赖项都位于./lib中,与当前目录相关。

然后你可以用java it.unimi.dsi.webgraph.BVGraph -o -O -L basename来完成你的工作。