Я вхожу в Clojure и Grammatic Evolution одновременно и обнаружил GEVA , который является инструментом GE, написанным на Java. У меня нет опыта в Java. Так что мне не нужно заново изобретать колесо, как я могу интегрировать GEVA в Clojure?
Я могу выполнить скрипт по умолчанию из CLI с:
java -jar GEVA.jar -main_class Main.Run
Исходный каталог GEVA имеет следующие подкаталоги с пакетами, названными в честь каталога:
Алгоритм ком Исключения FitnessEvaluation Фрактал Физические лица Главный оператор Mapper Параметр UI Util
Главный подкаталог содержит следующие файлы и учебный подкаталог:
AbstractRun.java Experiment.java Run.java State.java Обучающие программы
Следующие классы находятся в файле Run.java:
Открытый класс Run расширяет AbstractRun
публичный Run ()
публичный недействительный эксперимент (String [] args)
публичная настройка void (String [] args)
частный void setSeed ()
public static void main (String [] args)
Из того, что я могу сказать, статический метод 'main' в классе Main.Run - это то, что я хочу выполнить. Однако, когда я пытаюсь следовать инструкциям взаимодействия Java, я получаю ошибки.
clgeva.test=> (.Main.Run/main)
java.lang.Exception: No such namespace: .Main.Run (NO_SOURCE_FILE:5)
clgeva.test=> (.Main.Run/main "")
java.lang.Exception: No such namespace: .Main.Run (NO_SOURCE_FILE:6)
Я явно неправильно импортирую пространство имен для запуска основной функции.
user=> (import Main)
java.lang.ClassNotFoundException: Main (NO_SOURCE_FILE:1)
user=> (import Main.Run)
Main.Run
user=> (main)
java.lang.Exception: Unable to resolve symbol: main in this context (NO_SOURCE_FILE:3)
user=> (.Main.Run/main)
java.lang.Exception: No such namespace: .Main.Run (NO_SOURCE_FILE:4)
Какого черта я делаю не так? Я уверен, что просто упускаю что-то очевидное, но я бился головой об этом некоторое время и мне нужно какое-то направление. Спасибо.