java - 在终端中使用外部 jar 文件编译 java
问题描述
嗨我想在终端中编译java代码我在终端中输入以下命令
javac -cp .:../../lucene-8.6.3/lucene-8.6.3/core/lucene-core-8.6.3.jar:../../lucene-8.6.3/lucene-8.6.3/analysis/common/lucene-analyzers-common-8.6.3.jar:../../lucene-8.6.3/lucene-8.6.3/queryparser/lucene-queryparser-8.6.3.jar IndexFiles.java
我没有收到任何错误,在我输入以下命令运行后:
java -cp .:../../lucene-8.6.3/lucene-8.6.3/core/lucene-core-8.6.3.jar:../../lucene-8.6.3/lucene-8.6.3/analysis/common/lucene-analyzers-common-8.6.3.jar:../../lucene-8.6.3/lucene-8.6.3/queryparser/lucene-queryparser-8.6.3.jar IndexFiles
但我收到此错误:
Error: Could not find or load main class IndexFiles
Caused by: java.lang.NoClassDefFoundError: lucene/IndexFiles (wrong name: IndexFiles)
我应该怎么办?我怎么了?
这是 IndexFiles 类
package lucene;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.*;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Date;
/** Index all text files under a directory.
* <p>
* This is a command-line application demonstrating simple Lucene indexing.
* Run it with no command-line arguments for usage information.
*/
public class IndexFiles {
....
解决方案
由于您的类在包lucene
中,这就是您需要传递给的类名java
:它需要完全限定的名称。
CLASSPATH=../../lucene-8.6.3/lucene-8.6.3/core/lucene-core-8.6.3.jar:../../lucene-8.6.3/lucene-8.6.3/analysis/common/lucene-analyzers-common-8.6.3.jar:../../lucene-8.6.3/lucene-8.6.3/queryparser/lucene-queryparser-8.6.3.jar
java -cp ".:$CLASSPATH" lucene.IndexFiles
您还需要确保该.class
文件实际上位于正确的位置。在你的情况下,那将是./lucene/IndexFiles.class
.
推荐阅读
- javascript - 如果返回函数在别处声明,则柯里化不起作用
- python - 检查pandas df中列表中任何列名对之间的差异是否大于3
- c - 使用tensorflow的c api时如何禁用写入输出的tensorflow中的警告
- css - Firefox 中的 FontAwesome 图标平滑
- r - 汇总已知分组中的行和列
- mongodb - 在子数组中增加或创建对象
- python - 使用 Cython 获得更快的 numpy 函数
- appium-android - 如何在 Chrome 中处理丢失的屏幕
- javascript - Firestore startAfter() 在按时间戳降序排序时无限滚动返回相同的数据
- php - 如何使用 PHP 提取路径 url