0

我有一个名为stdlib-package的 jar 文件,这个 jar 文件中的.class文件都在一个edu.princeton.cs.introcs包 中

例如,我想在我自己的代码中使用该 jar 文件中名为StdDraw的一个类

E:\code是我当前的工作目录。像其他条件一样,我创建了一个子目录bin\edu\princeton\cs\introcs来 放入stdlib-package

这是我的代码:

package com.david.test;
import edu.princeton.cs.introcs.stdlib-package.*; // any problems here ?

public class DrawTest
{
    public static void main(String[] args)
    {
        StdDraw.line(0.5, 0.5, 1, 0.5);
    }
}  

然后我把DrawTest.java放在src\com\david\test

要编译DrawTest.java,我在命令行中键入命令:

javac -d bin -cp bin\edu\princeton\cs\introcs\stdlib-package.jar src\com\david\test\DrawTest.java  

但它失败了:包edu.princeton.cs.introcs.stdlib_package不存在......

找了好久都没找到答案
谢谢大家帮忙

EDIT===
@EJP 的评论也解决了我的问题。

4

3 回答 3

4

这应该是您在代码中需要的全部内容:

import edu.princeton.cs.introcs.*

然后你只需要确保 jar 在你的类路径上;罐子的名称是什么或它在哪里并不重要。如果它在您的类路径中,Java 将加载它,并使用其中文件的位置。

将 jar 移动到lib当前目录中的目录中,然后执行类似的操作

javac -cp lib\stdlib-package.jar src\com\david\test\DrawTest.javac
于 2012-10-26T07:05:56.160 回答
1

您的导入错误。该 .jar 文件中没有这样的包。

import edu.princeton.cs.introcs.*; 

但是,总的来说,这是一种不好的做法,您实际上应该只导入您需要的内容:

import edu.princeton.cs.introcs.StdDraw;
于 2012-10-26T07:11:43.187 回答
0

我知道没有名称为“stdlib-package”的包。

如果您使用的类的完全限定名称是 edu.princeton.cs.introcs.StdDraw,您可以只导入 'edu.princeton.cs.introcs.StdDraw'

     import edu.princeton.cs.introcs.StdDraw

如果要加载该包中的所有类

     import edu.princeton.cs.introcs.*
于 2012-10-26T07:12:15.743 回答