Error: Could not find or load main class pj2 on bash

Error: Could not find or load main class pj2 on bash

我知道这个问题已经被问过很多次了,但是我浏览了很多解决方案,却找不到任何具体的答案。我正在尝试使用 Alan Kimisky 教授的 Parallel 2 库,称为 pj2。

此库用于 this 图形着色问题。 我的文件目录看起来像这样

我必须提取 pj2.jar 并将 edu 文件复制粘贴到项目文件夹,以便所有 .java 文件都可以编译

首先通过命令编译我所有的文件

javac *.java

之后我们使用了GitHub项目中提到的命令

java pj2 cores=1 GraphColSeq sampleInput

此后显示错误

Error: Could not find or load main class pj2 

因此我在网上看到了。但是,当使用命令

设置 pj2 的路径时
export CLASSPATH=.:/C/TabuParallelProgrammingAlgorithm/pj2.jar

错误尚未显示。我在线尝试了大多数解决方案,但同样的错误仍然存​​在。

计算机规格

Windows 10, i7, jdk 1.7

更新

如两个建议的解决方案所述,我下载了 pj2 的可执行文件,现在我的目录如下所示

没有 lib 目录,pj2.class 存在于 pj2/ 本身。

我输入了以下命令 -

javac -cp pj2/ *.java

并且编译没有任何问题

但是当我输入

java -cp .:pj2/ pj2 cores=4 GrpahColSeq sampleInput.txt

错误又来了

Error: Could not find or load main class pj2 

我相信这与我在命令shell中写pj2的方式有关。也许必须需要确切的文件路径。请让我知道您的建议。

您已经下载了分发文件:

Version 20-Jun-2018 (6,399,014 bytes): pj2src_20180620.jar

获取可执行文件一个:

Version 20-Jun-2018 (1,133,935 bytes): pj2_20180620.jar

注意文件大小!

pj2_20180620.jar 文件应重命名为 pj2.jar

更新因为问题也updated/changed.

现在的问题是windows使用':'作为驱动器分隔符,所以java必须使用';'分离类路径组件(尽管 运行 在 bash 上)。 bash 使用';'分隔命令,所以我们需要转义它。

尝试:

java -cp '.;pj2' pj2 cores=4 GrpahColSeq sampleInput.txt

或者,(未测试)无需 unjar 或编译 pj2

java -cp '.;pj2.jar' pj2 ores=4 GrpahColSeq sampleInput.txt

使用相同 CLASSPATH

export CLASSPATH='.;pj2.jar'
java pj2 cores=4 GrpahColSeq sampleInput.txt

这不会使之前的答案无效!

首先需要编译pj2(如果pj2/lib目录下没有pj2.class):

javac *.java -cp pj2/lib/

现在您必须找到这个文件:pj2/lib/pj2.class

然后你需要编译你的 java 个文件:

javac -cp pj2/lib/ *.java

现在你可以运行你想要什么了:

java -cp .:pj2/lib/ pj2 cores=4 GraphColSeq sampleInput.txt 
Vertex:0,color:0
Vertex:1,color:1
Vertex:2,color:0
Vertex:3,color:0
Vertex:4,color:2
Total number of colors required:3
0 msec