justinuliu / autoweka

Auto-WEKA
http://www.cs.ubc.ca/labs/beta/Projects/autoweka/
0 stars 0 forks source link

Problem evaluating classifier: null #1

Open justinuliu opened 3 years ago

justinuliu commented 3 years ago

If Auto-WEKA cannot find command "java" in command prompt, evaluating process will get error.

[Thread-11] WARN weka.classifiers.meta.AutoWEKAClassifier - WARNING: An illegal reflective access operation has occurred
[Thread-11] WARN weka.classifiers.meta.AutoWEKAClassifier - WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector (file:/C:/Program%20Files/Weka-3-8-5/weka.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
[Thread-11] WARN weka.classifiers.meta.AutoWEKAClassifier - WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector
[Thread-11] WARN weka.classifiers.meta.AutoWEKAClassifier - WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
[Thread-11] WARN weka.classifiers.meta.AutoWEKAClassifier - WARNING: All illegal access operations will be denied in a future release
[Thread-11] ERROR weka.classifiers.meta.AutoWEKAClassifier - 2021-06-08 20:56:46.667 [main] ERROR Experiment - Failed to parse trajectory
[Thread-11] INFO weka.classifiers.meta.AutoWEKAClassifier - java.lang.RuntimeException: Failed to parse trajectory
[Thread-11] INFO weka.classifiers.meta.AutoWEKAClassifier -     at autoweka.smac.SMACTrajectoryParser.parseTrajectory(SMACTrajectoryParser.java:144)
[Thread-11] INFO weka.classifiers.meta.AutoWEKAClassifier -     at autoweka.TrajectoryParser.getTrajectory(TrajectoryParser.java:114)
[Thread-11] INFO weka.classifiers.meta.AutoWEKAClassifier -     at autoweka.TrajectoryParser.main(TrajectoryParser.java:88)
[Thread-11] INFO weka.classifiers.meta.AutoWEKAClassifier -     at autoweka.Experiment.main(Experiment.java:299)
[Thread-11] INFO weka.classifiers.meta.AutoWEKAClassifier -     at autoweka.tools.ExperimentRunner.main(ExperimentRunner.java:51)
[Thread-11] INFO weka.classifiers.meta.AutoWEKAClassifier - Caused by: java.lang.NullPointerException
[Thread-11] INFO weka.classifiers.meta.AutoWEKAClassifier -     at autoweka.smac.SMACTrajectoryParser.parseTrajectory(SMACTrajectoryParser.java:43)
[Thread-11] INFO weka.classifiers.meta.AutoWEKAClassifier -     ... 4 more
[Thread-10] INFO autoweka.TrajectoryMerger - Experiment C:\Users\User\AppData\Local\Temp\autoweka7929919122816433091\Auto-WEKA
[Thread-10] INFO weka.classifiers.meta.AutoWEKAClassifier - Thread 0, best configuration estimate -1.0
[Thread-10] INFO weka.classifiers.meta.AutoWEKAClassifier - classifier: null, arguments: [], attribute search: null, attribute search arguments: [], attribute evaluation: null, attribute evaluation arguments: []
java.lang.NullPointerException
        java.base/java.lang.String.contains(Unknown Source)
        weka.core.ClassCache.find(ClassCache.java:425)
        weka.core.ClassDiscovery.find(ClassDiscovery.java:212)
        weka.Run.findSchemeMatch(Run.java:82)
        weka.core.ResourceUtils.forName(ResourceUtils.java:76)
        weka.core.Utils.forName(Utils.java:1112)
        weka.classifiers.AbstractClassifier.forName(AbstractClassifier.java:91)
        weka.classifiers.meta.AutoWEKAClassifier.buildClassifier(AutoWEKAClassifier.java:520)
        weka.gui.explorer.ClassifierPanel$20.run(ClassifierPanel.java:1523)

        at java.base/java.lang.String.contains(Unknown Source)
        at weka.core.ClassCache.find(ClassCache.java:425)
        at weka.core.ClassDiscovery.find(ClassDiscovery.java:212)
        at weka.Run.findSchemeMatch(Run.java:82)
        at weka.core.ResourceUtils.forName(ResourceUtils.java:76)
        at weka.core.Utils.forName(Utils.java:1112)
        at weka.classifiers.AbstractClassifier.forName(AbstractClassifier.java:91)
        at weka.classifiers.meta.AutoWEKAClassifier.buildClassifier(AutoWEKAClassifier.java:520)
        at weka.gui.explorer.ClassifierPanel$20.run(ClassifierPanel.java:1523)
justinuliu commented 3 years ago

C:\Users\User\AppData\Local\Temp\autoweka7929919122816433091\Auto-WEKA\out\logs\123 gives hints

'java' is not recognized as an internal or external command,
operable program or batch file.

We need to make sure that command prompt can find 'java' in PATH. We can install a separate JAVA 11 and put $JAVA_HOME/bin in PATH or we can simply put the bundled java (weka-$VERSION/jre/zulu*/bin) in PATH.