Я имею, что я могу только догадываться, ошибка школьника с пути к классам при попытке выполнить следующую команду (Mahout и Lucene являются от Apache):java.lang.NoSuchMethodException из-за неправильного пути к классам?
bin/mahout seq2sparse -i <input-dir> -o <output-dir> -wt tfidf -chunk 50 \
-a org.apache.lucene.analysis.standard.StandardAnalyzer --minSupport 2\
--minDF 2 --maxDFPercent 75 --norm 2
Это дает мне ошибку:
Exception in thread "main" java.lang.IllegalStateException: java.lang.NoSuchMethodException: org.apache.lucene.analysis.standard.StandardAnalyzer.<init>()
at org.apache.mahout.common.ClassUtils.instantiateAs(ClassUtils.java:68)
at org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles.run(SparseVectorsFromSequenceFiles.java:204)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
at org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles.main(SparseVectorsFromSequenceFiles.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:188)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: java.lang.NoSuchMethodException: org.apache.lucene.analysis.standard.StandardAnalyzer.<init>()
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getConstructor(Class.java:1657)
at org.apache.mahout.common.ClassUtils.instantiateAs(ClassUtils.java:62)
... 16 more
Ожидаемый метод является частью библиотеки Apache Lucene, это не мой собственный код. Я добавил банки Lucene к классам, используя следующие: export CLASSPATH=$CLASSPATH:mahout-distribution-0.6/lib/*
Как примечание стороны, нет автозаполнения при определении класса на флаг «-a». Является ли это признаком того, что моя банка не видна? У меня была эта автозаполнение в другой системе.
Моя машина работает на Java (TM) SE Runtime Environment (сборка 1.6.0_26-b03)
Я хотел бы начать путем изменения основной функции и просто начать делать 'System.out.println («Classpath =»+ System.getProperty (" Java .class.path ");' и проверьте путь к печатному классу, чтобы убедиться, что он содержит банки, которые вы ожидаете. – Alderath