【问题标题】:How to import a jar file which is in a package?如何导入包中的jar文件?
【发布时间】:2012-10-26 07:02:56
【问题描述】:

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

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

E:\code 是我当前的工作目录。像其他条件一样,我创建一个子目录 bin\edu\princeton\cs\introcsstdlib-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 不存在...

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

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

【问题讨论】:

  • 要获得更好的编码体验,请使用 IDE
  • 包在JAR文件里,不是反过来,是你要导入的包,不是JAR文件。 “我创建了一个子目录 bin\edu\princeton\cs\introcs 来放入 stdlib-package” 为什么?你不需要这一切。像其他人一样把它放在'lib'中。

标签: java jar


【解决方案1】:

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

import edu.princeton.cs.introcs.*

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

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

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

【讨论】:

  • 谢谢,能不能给我看一下编译的命令行代码?
【解决方案2】:

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

import edu.princeton.cs.introcs.*; 

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

import edu.princeton.cs.introcs.StdDraw;

【讨论】:

    【解决方案3】:

    我了解没有名称为“stdlib-package”的包。

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

         import edu.princeton.cs.introcs.StdDraw
    

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

         import edu.princeton.cs.introcs.*
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 2017-10-07
      • 2011-06-26
      • 2012-04-06
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      相关资源
      最近更新 更多