当前位置: 首页 > 知识库问答 >
问题:

从终端运行Java问题

纪俊良
2023-03-14

我使用的是一个安装了Ubuntu的云虚拟机。安装的Java版本为:

在编译java程序时,我必须使用两个jar:disco-2.1.jarsqlite-jdbc-3.8.11.2.jar。我使用的终端命令是:

javac -cp '/home/ubuntu/workspace/sem/*' USem.java

使用/home/ubuntu/workspace/sem/*将disco和sqlite jar添加到类路径中。

这将在sem目录中创建我的usem.class文件,而不会出现错误。这些JAR包含在sem目录中。

usem.java包含这部分代码,从头开始:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.apache.lucene.index.CorruptIndexException;

import de.linguatools.disco.CorruptConfigFileException;
import de.linguatools.disco.DISCO;
import de.linguatools.disco.TextSimilarity;
import de.linguatools.disco.DISCO.SimilarityMeasure;

public class USem {

//irrelevant code here

public static void main(String[] args) throws IOException, CorruptConfigFileException, SQLException{

当我在终端中运行以下内容时,问题就开始了:

java USem

终端机显示我:

错误:出现JNI错误,请检查您的安装并在线程“main”java.lang.noClassDefFounderror:de/linguatools/disco/corruptConfigFileException at java.lang.class.getDeclaredMethods 0(本机方法)at java.lang.class.privateGetDeclaredMethods(class.java:2701)at java.lang.class.privateGetMethodRecursive(class.java:3048)at java.lang.class.getMethod0 Main(LauncherHelper.java:526)由:java.lang.ClassNotFoundException:de.linguatools.disco.corruptConfigFileException:java.net.urlClassLoader.FindClass

我认为disco-2.1.jar存在问题。我检查了其中包含的jar类,一切正常。

我的工作区是这样组织的:

home/ubuntu/workspace/sem

sem目录中,我有我的.java文件,.jar文件被添加到该目录中。

我做错了什么?我尝试卸载并重新安装JDK,更改运行命令的终端文件夹,但没有任何变化。

--更新--

现在我写了

java -cp '/home/ubuntu/workspace/sem/*' USem

然而,我得到了

错误:无法找到或加载主类USem

共有1个答案

费秦迟
2023-03-14

在执行java命令时,将Disco jar(或任何其他必需的jar)添加到类路径中

java-cp“whatever.jar”my.package.mainclass

 类似资料:
  • 因此,我正在运行Sierra,当我在终端输入“r”或“r”时,我得到“-bash:r:command not found”。如果我在终端中键入“which r”,我不会得到任何输出。 以下是“echo$path”的输出:/versions/2.7/bin://usr/local/bin://bin://bin://sbin://sbin://sbin://users/samuelcolon/.rv

  • 当我运行IntelliJ IDEA中的代码时,它工作得很好,但如果我尝试用“gradlew run”从终端运行它,它会打印出问题,但不给我输入任何内容的机会。它立即打印“hello null by gradle”并完成运行。有人知道它为什么会这样吗? 我使用任务“gradle init”创建这个项目,我选择了application、Java、Groovy、JUnit Juppiter。

  • 问题内容: 我是Java新手。我一直在使用Eclipse测试一个简单的Java类(名为NewHelloWorld),它在控制台中运行良好。当我尝试从终端执行相同的操作时,它会正确编译(创建HelloWorld.class而不给出任何错误),但是随后显示以下错误 我也试过了,但是给出相同的错误也没有用。 这些是环境变量的值: 还有其他要求吗?或者我在这里错过了什么吗?谢谢 PS:使用Ubuntu 1

  • 所以我试着在我的Mac上的终端上运行这个。我的文件路径是/users/admin/documents/java/java24/com/java24hours 我尝试在java24hours目录“java saluton.java”中运行,并返回一个“error:Could not find或load main class saluton.java” 据我所知,这与包裹有关。我研究了包名,但不明白完

  • 我想通过运行以下命令从Mac OSX终端运行/打开Visual Studio代码。我在这里找到了说明: https://code.visualstudio.com/docs/setup 显然我需要在我的文件中包含这一点,所以我做了,但没有用。 我在此处编辑了文件:

  • 我知道有很多关于这个的线索,但是没有一个对我有用。以下是我试图做的: Javac并从我的java代码中运行一个文件。它适用于视窗系统,但我想让它也适用于UNIX。代码如下: 问题是,在UNIX系统上,它的行为“不可预测”,例如: 打开图像,但 它什么也没做。没有按摩。 我非常感谢您的任何意见。 更新--------------------------------------------------