通过java -cp * .jar package.path.ClassName指定主类将不起作用

时间:2016-05-24 13:43:49

标签: java

我知道这个话题有很多问题,虽然我已经尝试了很多东西,但我无法弄清楚问题出在哪里。

具体来说,我尝试使用

执行webgraph的jar文件
java-cp webgraph-3.5.2.jar it.unimi.dsi.webgraph.ASCIIGraph

我查看了jar文件,类文件出现在it / unimi / dsi / webgraph文件夹中,这似乎没问题。运行命令时,我仍然得到

Error: Could not find or load main class it.unimi.dsi.webgraph.ASCIIGraph

我试图指定用分号分隔的所有lib,这没有帮助(我还希望错过libs的另一个错误消息)

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,经过如此多的研究,终于找到了答案。这是传递该错误的方法。

第一步:从Here下载并提取Apache Maven二进制文件
第二步:从here下载依赖项压缩包并解压缩
第三步:检索带有this repository扩展名的WebGraph框架源代码。该版本包含复制列表和复制标志压缩格式,以及其他压缩方案的其他标志。
第四步:通过在WebGraph根目录中运行“ mvn install”,使用Maven编译框架的JAR文件。
第五步:将target / webgraph-3.5.2.jar文件复制到与依赖项(tarball依赖项)中的JAR文件相同的位置。

这就是诀窍,您需要准确指定tarball依赖项的位置,以便获得预期的结果。因此,假设我的tarball依赖项位于我的'〜/ webgraph-deps /'目录中,

userId movieId cluster avg_rating title
196    242     2       3.5        Kolya (1996)
22     377     2       3.5        Heavyweights (1994)
305    451     2       3.0        Grease (1978)
6      86      2       3.75       Remains of the Day, The (1993)

此外,如果以上命令失败,则可能是由于内存不足,并使用以下命令[它将设置Java的初始堆大小以进行处理,我有12GB的RAM并为此过程分配了6GB( -Xmx6G)]

$ java -cp "~/webgraph-deps/*" it.unimi.dsi.webgraph.ASCIIGraph <WHATEVER_YOU_WANT_TO_DO>

这是我的参考文献https://github.com/lhelwerd/WebGraph。检查更多!