I am getting into Clojure and Grammatical Evolution at the same time and discovered GEVA, which is a GE tool written in Java. I have no background in Java. So I don't have to re-invent the wheel, how can I integrate GEVA into Clojure?
I can execute the default script from the CLI with: java -jar GEVA.jar -main_class Main.Run
The GEVA source directory has the following subdirectories with packages named after the directory: Algorithm com Exceptions FitnessEvaluation Fractal Individuals Main Mapper Operator Parameter UI Util
The Main subdirectory has the following files and tutorial subdir: AbstractRun.java Experiment.java Run.java State.java Tutorials
The following classes are in the Run.java file: public class Run extends AbstractRun public Run() public void experiment(String[] args) public void setup(String[] args) private void setSeed() public static void main(String[] args)
From what I can tell, the static method 'main' in class Main.Run is what I want to execute. However when I try to follow the Java interop instructions, I am getting errors.
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)
I'm obviously not importing the namespace correctly to run the main function.
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)
What the heck am I doing wrong? I am sure I'm just missing something obvious, but I've been banging my head on it for a little while and need some direction. Thanks.