Java 运行时 ClassNotFoundException

2024-02-11

只是有一个关于我遇到的奇怪的运行时错误的问题。我正在使用一个 JSON 服务器,当外部源提示时,该服务器会响应 JSON 对象。然而,到目前为止,我只是尝试在发送 JSON 对象之前启动并运行它。我的代码编译时没有指定任何类路径,但是当涉及到运行时时,它会抛出一个NoClassDefFoundError如这里所示:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at ExampleServer.sendData(ExampleServer.java:76)
at ExampleServer.runServer(ExampleServer.java:30)
at ExampleServer.main(ExampleServer.java:15)
   Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 15 more

我的代码如下:

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.lang.*;
import net.sf.json.*;

public class ExampleServer{

private DataOutputStream output;
private DataInputStream input;
private ServerSocket server;
private Socket connection;

public static void main(String[] args){
    new ExampleServer().runServer();
}

public void ExampleServer(){
    System.out.println("Server object created");
}

public void runServer(){
    try{
        server = new ServerSocket(12345,100);
        while(true){
            try{
                waitForConnection();
                getStreams();
                processConnection();
                sendData("Text");
            } catch(Exception e){
                System.out.println("Server Terminated Exception.");
            } finally {
                closeConnection();
            }
        }
    } catch(Exception e){
        e.printStackTrace();
    }
}

private void waitForConnection(){
    try{
        System.out.println("Waiting for connection.");
        connection = server.accept();
        System.out.println("Connection received from " + connection.getInetAddress().getHostName());
    } catch (IOException e){
        System.out.println(e);
    }
}

private void getStreams() throws IOException{
    output = new DataOutputStream(connection.getOutputStream());
    input = new DataInputStream(connection.getInputStream());
    System.out.println("Got streams");
}

private void processConnection() throws IOException{
    sendData("This is a test message");
}

private void closeConnection(){
    try{
        if(output != null && connection != null){
            sendData("SEVER>>> TERMINATE");
            output.close();
            connection.close();
        }
    } catch (IOException e){
        e.printStackTrace();
    }
}

private void sendData(String message){
    try{
        JSONObject g = new JSONObject();
        g.put("message", message);
        System.out.println(g.toString());
    } catch (Exception e){
        System.out.println("Error writing object");
    }
}

}

JSON 文件夹与以下目录位于同一目录中ExampleServer.java,JSON 类位于net/sf/json正如我的导入中所指定的。为什么它直到运行时才起作用?由于某种原因我的类路径不正确吗?包含必要的类路径的适当语法是什么?

提前致谢


From json-lib 主页 http://json-lib.sourceforge.net/:

Json-lib 需要(至少)您的以下依赖项 类路径:

  1. 雅加达公共语言 2.5
  2. 雅加达commons-beanutils 1.8.0
  3. 雅加达公共收藏 3.2.1
  4. 雅加达公共日志记录 1.1.1
  5. 埃兹变形 1.0.6

您的实现编译仅表明编译器可以找到正确的类和方法。然而,这些类和方法的实现可能依赖于其他库。

有关项目依赖关系的更多信息可以找到here http://json-lib.sourceforge.net/dependencies.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 运行时 ClassNotFoundException 的相关文章

随机推荐

  • 重新启动应用程序时出现内存不足错误(Android)

    我正在开发一款使用 5 个大约 900x600 的大图像的游戏 当我退出游戏 按后退按钮 然后尝试启动游戏时 出现以下错误 12 29 15 59 16 633 E AndroidRuntime 18642 FATAL EXCEPTION
  • 在C#中,如何解析主机的IP地址?

    如何动态获取服务器 要连接的PC 的IP地址 系统 Dns GetHostEntry http msdn microsoft com en us library system net dns gethostentry aspx可用于将名称解
  • 使用 Convert_alpha 在 Pygame 中使图像背景透明

    我试图在 Pygame 脚本中使图像的背景透明 现在我的游戏背景是黑色的 而不是透明的 我在其他地方读过我可以使用的convert alpha 但似乎不起作用 这是我的代码 相关部分 import PIL gameDisplay pygam
  • 添加到 slack 与使用 slack 登录

    我已将 添加到 Slack 按钮添加到我的 Web 项目中 它工作得很好 就像交换访问令牌的代码并重定向到我选择的 URL 一样 现在 我对 使用 Slack 登录 按钮有点困惑 我知道它用于登录个人成员 那么它会要求他们提供组织电子邮件和
  • COUNT(*) 什么时候返回 NULL?

    你好 我有一个经常写信的同事ISNULL COUNT 0 但我一直以为COUNT 永远无法返回NULL 但后来我搜索了互联网 我的发现让我能够编写这段小代码 create table t1 val1 varchar 50 select co
  • 如何在NativeScript中访问android的R对象?

    我正在尝试访问 Android 的R我用 Angular 在 NativeScript 中尝试了一个对象 但我没有取得任何成功 说明here https www nativescript org blog using android bac
  • 如何在Anaconda下使用非mkl NumPy?

    Anaconda Python 发行版使用针对 Intel MKL 库编译的 NumPy 和相关包 而不是 标准 NumPy 如何在特定 conda 环境上将 Anaconda 与 标准 NumPy 一起使用 不幸的是 目前还不能选择使用其
  • 为什么我的调试器因仅指向 main.js 的链接而损坏

    我正在努力调试我的角度应用程序 这是我继承的一个应用程序 并努力寻找它无法工作的原因 当我尝试调试我的项目时 打开 chrome 调试器 我得到的只是对 main js 的引用 当我单击这些时 它不会将我带到正确的源代码行 正如评论中指出的
  • 如何将数据库中的所有表更改为UTF8字符集?

    我的数据库不是 UTF8 我想将所有表转换为 UTF8 我该怎么做 对于单表 你可以这样做 ALTER TABLE tab CONVERT TO CHARACTER SET utf8 COLLATE utf8 unicode ci 对于整个
  • ASP.net MVC 支持带有连字符的 URL

    有没有一种简单的方法可以让 MvcRouteHandler 将传入 URL 的操作和控制器部分中的所有连字符转换为下划线 因为方法或类名称中不支持连字符 这样我就可以支持诸如 example com test page edit detai
  • PHP - 最轻量级的 psr-0 兼容自动加载器

    我有一个小型应用程序 我需要一个自动加载器 我可以轻松地使用 symfony2 类加载器 但这似乎有点矫枉过正 是否有稳定且超轻量的 psr 0 自动装载机 你要求非常轻量 让我们这样做吧 Timothy Boronczyk 写了一个很好的
  • ASP.NET MVC3 - 使用 DependencyResolver 和温莎城堡:为什么?

    有人能为我点亮一点光吗 我的网站全部使用温莎城堡运行 我有一个控制器工厂以及控制器和服务的安装程序 一切都很好 现在我刚刚创建了一个IDependencyResolver实现类称为WindsorDependencyResolver直接实施
  • iOS 8 远程通知 - 我什么时候应该调用 registerForRemoteNotifications()?

    正如苹果关于推送通知的官方信息页面所述 设备令牌可能会更改 因此您的应用程序需要重新注册每次启动时 我试图理解他们所说的 每次启动 是什么意思 这是否意味着我必须在 AppDelegate 中的 didFinishLaunchingWith
  • Firebase Firestore 与侦听器的成本

    有几个与消防成本相关的问题 但我找不到能够澄清我脑海中问题的问题 我有两个案例 我想知道每种情况下的估计成本 文档读取次数 假设我有一个显示 10 个用户的一页应用程序 打开应用程序会将侦听器附加到 userList 集合并侦听该集合中的
  • 具有纤薄框架的读取令牌

    我正在使用 SlimFramework 和 JWT 来处理基于登录名和密码的基于令牌的身份验证 我成功登录并发送令牌作为响应 这是我的代码
  • 在 Hive 中创建临时表?

    Hive 支持临时表吗 我在 apache 文档中找不到它 从 Hive 0 14 0 开始感谢 hwrdprkns 的评论 从 Hive 0 14 0 开始 支持临时表https cwiki apache org confluence d
  • ASP.NET MVC RC - 使用代码隐藏创建 MVC 用户控件

    尝试在候选版本中创建一个 MVC 用户控件 但我无法使用代码隐藏文件来创建一个 MVC 视图页面也是如此 在 Beta 版中创建视图会产生代码隐藏 我错过了什么吗 代码隐藏有点违背了 MVC 框架的目的 功能应该与视图分离 MVC 团队认为
  • 确保 C++ 中的 OpenGL 兼容类型

    OpenGL 缓冲区对象支持各种明确定义宽度的数据类型 GL FLOAT是32位的 GL HALF FLOAT是16位的 GL INT是 32 位 如何确保 OpenGL 的跨平台和面向未来的类型 例如 喂食float数据从 C 数组到缓冲
  • .NET 中通过 Process.Start 生成的进程会挂起线程

    我们的应用程序有一个后台线程 它通过以下方式生成一个进程System Diagnostics Process Process Start new ProcessStartInfo FileName url UseShellExecute t
  • Java 运行时 ClassNotFoundException

    只是有一个关于我遇到的奇怪的运行时错误的问题 我正在使用一个 JSON 服务器 当外部源提示时 该服务器会响应 JSON 对象 然而 到目前为止 我只是尝试在发送 JSON 对象之前启动并运行它 我的代码编译时没有指定任何类路径 但是当涉及