0

我创建了以下 java 文件:

import java.awt.*;

public class Text {
    public static void main(String[] args) {
        String str = "I AM A SENTENCE";
        String[] lines = wrap(str, 5);
        for (int i=0;i<lines.length;i++) {
            if (lines[i] != null) System.out.println(lines[i]);
        }
        Font myFont = new Font("Impact", Font.BOLD, 36);
        System.out.println(String.valueOf(charToPixel(str, myFont)));
    }
    public static String[] wrap(String str, int w) {
        char[] string = str.toCharArray();
        System.out.println("string.length: " + String.valueOf(string.length));
        int charCounter = 0;
        String[] line = new String[20];
        String work = "";
        int x = 0;
        for (int i=0;i<string.length;i++) {
            charCounter++;
            System.out.println("charCounter: " + String.valueOf(charCounter));
            System.out.println("i: " + string[i]);
            if (charCounter > w) {
                charCounter = 0;
                System.out.println(String.valueOf(x));
                line[x] = work;
                x++;
                work = "";
                i--;
            }
            else {
                work += string[i];
            }
        }
        line[x] = work;
        return line;
    }
}

现在,我还创建了一个简单的小程序,我想用它来接收 String[],然后使用 Graphics.drawString() 逐个输出它。我使用默认清单和以前的类文件创建了一个 .jar 文件。jar 中类文件的目录如下:Dennis\Text.class。我将我的 jar 添加到 CLASSPATH 中。我使用 import 语句如下:import Dennis.*;

但是,当我编译小程序时(顺便说一下 Text.class 已完美编译),我收到以下编译错误:

错误的类文件:B:\Apps\Java\JDK\lib\Text.jar(Dennis/Text.class) 类文件包含错误的类:Text 请删除或确保它出现在类路径的正确子目录中。

据我所知,我将所有内容都放在了正确的位置,并且导入语句是成功的。

那么我做错了什么?

4

1 回答 1

2

jar 中类文件的目录如下:Dennis\Text.class。

不应该。它不在任何包中,所以它应该直接在 jar 文件的根目录中。理想情况下它放在一个包中(不是Dennis,这违反了 Java 命名约定),然后使您的 jar 文件结构与包结构匹配。

于 2012-10-01T18:37:19.333 回答