1

在 Google 上进行了一场艰苦的战斗后,我找到了一种下载和设置 Java 的 Apache Commons API 的方法(所有这些只是为了包装一大段文本: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 被设置为环境变量,并且.jar来自 Apache 的文件不包含在项目的其余部分中,我将它放在一个单独的目录中,因为我计划将它用于多个项目。

4

1 回答 1

2

检查正确给出的类路径
如果从 中运行 java 类,则command line需要添加(当前目录)点 (.)。

java YourClass -cp .

更新:如果您使用的是 Applet,请参阅此小程序参考

Applet 类旨在从 applet 的 CODEBASE(如果不存在 CODEBASE 标记,则为 HTML 文件的目录)加载,而不是从 CLASSPATH 加载。如果您在 CLASSPATH 中的目录中有小程序类,则这些类将被允许绕过正常的小程序安全限制。

看到这个环境参考appletviewer

详细说明:(参考一些
浏览器可以运行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()applet 上的方法,然后调用show()方法。
于 2012-09-26T18:18:03.480 回答