java - 为什么在运行时找不到公共(public)类?

标签 java apache runtime-error apache-commons

在与 Google 进行了一场艰苦的战斗之后,我找到了一种下载和设置 Apache Commons API for Java 的方法(所有这一切只是为了我可以包装一大块文本:P)。正确创建 CLASSPATH 后,我的编译器(命令行为 mingw)能够访问该库并编译我的文件。但是,当我运行它时,我收到运行时错误:

Exception in thread "AWT-EventQueue-1" java.lang.NoClassDefFoundError: org/apach
e/commons/lang3/text/WordUtils

我是否忘记在某处声明 Apache 类?

有问题的代码片段:

String strWrap = WordUtils.wrap("A really really really really really long sentence.", 50);
b.drawString(strWrap,20,20);

我的导入声明:

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import org.apache.commons.lang3.text.*;

顺便说一句,我应该提到 CLASSPATH 被设置为环境变量,并且来自 Apache 的 .jar 文件不与项目的其余部分一起,我将它放在一个单独的目录中我计划将它用于多个项目。

最佳答案

检查CLASS PATH正确给予。
如果您从命令行运行java类,则需要添加(当前目录)点(.)。

java YourClass -cp .

更新:如果您使用 Applet,请参阅此 applet Ref

Applet classes are meant to be loaded from the applet's CODEBASE (the directory of the HTML file if no CODEBASE tag is present), not from the CLASSPATH. If you have applet classes in a directory which is in your CLASSPATH, those classes will be allowed to bypass the normal applet security restrictions.

看到这个Environment Reference , appletviewer

详细说明: ( Reference )
某些浏览器可以运行 Java 小程序。他们通过将成熟的 Java 解释器直接内置到浏览器中或作为浏览器扩展(或插件)加载来实现这一点。 请注意,浏览器使用的 Java 解释器可能会也可能不会考虑 CLASSPATH 环境变量的设置,具体取决于您使用的浏览器。这可能会影响您下载小程序时发生的情况。

使用标签将 Java 小程序嵌入到 HTML 页面中,如下所示:

<applet code="main.class" height="100" width="100"></applet>

当浏览器看到此标记时,它会执行以下操作:

  1. 启动 Java 解释器(如果尚未运行)。
  2. 在页面上保留给定的空间量 (100x100) 并在该空间中创建 Java 容器。
  3. 下载文件main.class并确保它扩展了java.applet.Applet(它本身扩展了java.awt.Panel)。下载是使用简单的 GET 请求完成的,就像下载图像一样。
  4. 将小程序添加为容器的子级。
  5. 调用小程序上的 init() 方法,然后调用 show() 方法。

关于java - 为什么在运行时找不到公共(public)类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12607724/

相关文章:

java - Apache FOP - PDF 创建俄语文本

vba - 运行时错误 '1004' 对象 'Range' 的方法 '_Global' 失败 - 动态表名称、循环、工作表间搜索

php - Subversion 如何处理文件权限和 .htaccess 文件?

windows-phone-8 - 在 WP8 部署 "Error writing file FOLDERID_APPID_INSTALL....."时出错

vba - 第一个 VBA 代码 : Run-time Error "1004"

Java 仅从循环内返回值

java - xjc 命令未创建模式中定义的所有类

java - jetty 、JNDI、PostgreSQL : Class not found

java - 升级到 Gradle 7 后 Android Gradle Javadoc 损坏

php - .htaccess 指向页面的 php 版本(如果存在)