Ошибка: не удалось найти или загрузить основной класс pj2 в bash

Я знаю, что этот вопрос задавали много раз, но я просмотрел множество решений и не смог найти конкретного ответа. Я пытаюсь использовать библиотеку Parallel 2 профессора Алана Кимиски, названную pj2.

Эта библиотека используется для этой раскраски графика. проблема. Мой каталог файлов выглядит примерно так

введите здесь описание изображения

Мне пришлось извлечь 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 

Я считаю, что это как-то связано с тем, как я пишу pj2 в командной оболочке. Возможно, требуется точный путь к файлу. Пожалуйста, дайте мне знать ваши предложения.


person rut_0_1    schedule 09.10.2018    source источник
comment
проверьте, не поврежден ли файл pj2.jar, откройте его с помощью winzip или 7-zip и найдите pj2.class в основной папке (или используйте jar -tvf pj2.jar)   -  person user85421    schedule 09.10.2018
comment
Да файл pj2.class присутствует   -  person rut_0_1    schedule 24.10.2018
comment
java -cp .:pj2.jar pj2 cores=4 GrpahColSeq sampleInput.txt или в конечном итоге java -cp .:pj2 pj2 cores=4 GrpahColSeq sampleInput.txt (иногда bash в Windows немного странный,...)   -  person user85421    schedule 24.10.2018
comment
редактирование ответа, так как вопрос изменился   -  person user85421    schedule 24.10.2018


Ответы (2)


Вы скачали исходный дистрибутив:

Версия от 20 июня 2018 г. (6 399 014 байт): pj2src_20180620.jar

Получите исполняемый файл:

Версия от 20 июня 2018 г. (1 133 935 байт): pj2_20180620.jar

Обратите внимание на размеры файлов!

файл pj2_20180620.jar следует переименовать в pj2.jar

Обновить так как вопрос также обновлен/изменен.

Проблема теперь заключается в том, что Windows использует ':' в качестве разделителя дисков, поэтому java должен использовать ';' для разделения компонентов пути к классам (несмотря на то, что он работает на bash). И bash использует ';' для разделения команд, поэтому нам нужно избежать его.

Пытаться:

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

или (не проверено) без необходимости распаковывать или компилировать pj2

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

То же самое для использования CLASSPATH

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

это не делает недействительным предыдущий ответ!

person user85421    schedule 09.10.2018
comment
Я получил исполняемый файл, но проблема не устранена - person rut_0_1; 24.10.2018
comment
Большое спасибо, обновление работало как шарм для меня :). И да, я проверил все ваши команды, и каждая из них работает без сбоев. - person rut_0_1; 24.10.2018

прежде всего нужно скомпилировать pj2 (если нет pj2.class в каталоге pj2/lib):

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
person Taher Khorshidi    schedule 09.10.2018