嘿,我正在开发 java 应用程序。我完成了编码部分,但是exception in thread main java.lang.noclassdeffounderror
当我运行它时我正在接收。我已经通过互联网搜索了这个,找不到合适的答案。
让我解释一下在将 java 程序从 eclipse 导出到可执行 jar 文件之前我做了什么:
我在我的库中添加了一些 jar 文件,以便我的程序可以连接第 3 方程序。它从一个名为 SSC 的自定义 Jre 运行,并在 3rd 方程序的 (SunSystems) 位置文件夹中获取位置。
我编写了运行程序所需的 java 代码。
然后我运行了这个项目,当我从 Eclipse 运行时它运行良好。
我单击项目名称,然后单击导出。我选择了可运行的 jar 文件并将所需的库复制到生成的 jar 文件旁边的子文件夹中。我从启动配置中选择了正确的类。然后点击完成。
当我通过键入从 cmd 运行 jar 文件时,java -jar ssc.jar
它给了我这个错误:
exception in thread main java.lang.noclassdeffounderror
和其他一些带有标签的行。
我应该怎么做才能解决这个问题?
一些文档说我需要将类路径添加到程序中,或者编辑清单文件等。我不知道怎么做。
我会很感激你的帮助。谢谢
(编辑)演示包下的SSC.java类。当我从 Eclipse 运行时,它可以工作:
package demo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import com.systemsunion.ssc.client.*;
public class SSC {
static String HOST="localhost";
static int Port=8080;
public static void main(String[] args) {
try
{
SecurityProvider secman= new SecurityProvider(HOST,true);
String voucher= secman.Authenticate("PKP","").toString();
String sInputPayload="";
String path="C:/SSC temp/temp.txt";
BufferedReader reader= new BufferedReader(new FileReader(path));
BufferedWriter writer= new BufferedWriter(new FileWriter(new File("C:/SSC temp/temp-result.txt")));
String line="";
while((line = reader.readLine()) != null)
{
sInputPayload = sInputPayload + line;
}
try
{
SoapComponent ssc= new SoapComponent(HOST, Port);
ssc.authenticate(voucher);
String result= ssc.execute("Journal", "Import", sInputPayload);
writer.write(result);
writer.newLine();
writer.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
当我从 cmd 运行 jar 文件时出错:
Exception in thread "main" java.lang.NoClassDefFoundError: com/systemsunion/ssc/
client/SoapComponent
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.systemsunion.ssc.client.SoapCom
ponent
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more