2012-10-26 61 views
0

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

例如,我想用一个名为StdDraw一个类从我自己代码中的那个jar文件中删除

E:\ code是我当前的工作目录。像其他的条件,我创建一个子目录斌\ EDU \普林斯顿\ CS \ introcsSTDLIB包

这里是我的代码:

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.javaSRC \ COM \大卫\测试

要编译DrawTest.java,I型在命令行的命令:

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

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

我搜索了很多时间,但还没有找到答案
感谢您的帮助

编辑===
@ EJP的评论解决了我的问题太多。

+2

为了更好的经验,在编码,使用IDE –

+2

包是在JAR文件,而不是周围的其他方式,它是你想要导入的包,而不是JAR文件。 “我创建了一个子目录bin \ edu \ princeton \ cs \ introcs将stdlib-package放入”为什么?你不需要那么多。就像其他人一样,把它放在'lib'中。 – EJP

回答

4

这应该是你的代码需要:

import edu.princeton.cs.introcs.* 

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

移动罐子到lib目录在当前目录中,并完成类似

javac -cp lib\stdlib-package.jar src\com\david\test\DrawTest.javac 
+0

谢谢,但你能告诉我编译的命令行代码吗? –

+0

@Bin_Z编辑我的答案。 –

1

你的进口是错误的。这个.jar文件中没有这样的包。

import edu.princeton.cs.introcs.*; 

但一般情况下,这是一个不好的做法,你真的应该只导入你需要:

import edu.princeton.cs.introcs.StdDraw; 
0

据我所知,没有包'STDLIB包的名字。

如果您正在使用的类的完全限定名称是edu.princeton.cs.introcs.StdDraw,则只需导入'edu.princeton.cs.introcs。StdDraw”

 import edu.princeton.cs.introcs.StdDraw 

如果要加载的所有类在包

 import edu.princeton.cs.introcs.*