通过java-cp*.jar package.path.ClassName指定主类;行不通

通过java-cp*.jar package.path.ClassName指定主类;行不通,java,Java,我知道在这个话题上有很多问题,虽然我尝试了很多东西,但我不知道问题出在哪里 具体地说,我尝试使用 我查看了jar文件,类文件位于it/unimi/dsi/webgraph文件夹中,看起来还可以。当运行命令时,我仍然会得到 Error: Could not find or load main class it.unimi.dsi.webgraph.ASCIIGraph 我试图指定所有用分号分隔的lib,但没有用(我还希望有另一条错误消息显示缺少lib)我遇到了同样的问题,经过这么多的研究,我终于

我知道在这个话题上有很多问题,虽然我尝试了很多东西,但我不知道问题出在哪里

具体地说,我尝试使用

我查看了jar文件,类文件位于it/unimi/dsi/webgraph文件夹中,看起来还可以。当运行命令时,我仍然会得到

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

我试图指定所有用分号分隔的lib,但没有用(我还希望有另一条错误消息显示缺少lib)

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

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

这里有一个诀窍,您需要精确地指定tarball依赖项的位置,以便获得预期的结果。因此,假设我的tarball依赖项位于我的“~/webgraph deps/”目录中

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

这是我的参考资料。查看更多

jar包中是否存在MANIFEST.MF文件?类必须具有
publicstaticvoidmain
方法,才能在尝试时从命令行运行。似乎
It.unimi.dsi.webgraph.ascigraph
没有这样的方法,它不是要运行的。ascigraph有一个main方法,MANIFEST.MF存在。这个类有很多依赖项,您需要下载它们并添加到类路径。请参阅WebGraph的pom,这就是我所说的“试图指定所有用分号分隔的LIB,但没有帮助”我设法从bash启动它,方法是将它作为eclipse中的ant项目导入,并查看eclipse使用的命令:java-Dfile.encoding=UTF-8-classpath/home/../Dev/webgraph-3.5.2/build:/home/…workspace\u java/webgraph/bin:/home/../Dev/webgraph-3.5.2/jars/compile/commons collections.jar:more libraries it.unimi.dsi.webgraph.ascigraph我真的不明白为什么java-cp和所有的库都不起作用。
$ java -cp "~/webgraph-deps/*" it.unimi.dsi.webgraph.ASCIIGraph <WHATEVER_YOU_WANT_TO_DO>
$ java -Xmx6G -cp "~/webgraph-deps/*" it.unimi.dsi.webgraph.ASCIIGraph