繁体   English   中英

导入JAR文件的Java代码

[英]Java code to import JAR file

我创建了一个JAR文件,然后将其添加到项目的构建路径中。 现在如何将其导入我的班级以便可以使用? 我只尝试了import java-class.jar; 至今。

您可以在Java源代码中导入类,而不是jar文件。

假设您有someJar.jar ,其中包含3个类的类定义, FirstClass.classSecondClass.classThirdClass.class ,它们都在org.somepackage包中。

鉴于以上所述,您将添加

import org.somepackage.FirstClass

在源文件的顶部导入名为FirstClass的类。

为此,您需要在编译和运行时将其添加到类路径中,例如

java -cp myJar.jar abmyMainClass

要么

javac -cp myJar.jar a/*

将jar放在执行类路径上后,即可正常导入它们:

import the.package.and.name.of.TheClass;

这是因为Java虚拟机具有“类路径”的概念。 该类路径充满了在放在该类路径上的jar文件和文件夹中找到的所有文件(类和资源)。

例如,如果您有两个jar和一个文件夹:

A.jar
  com/
    mycompany/
      A.class
      Another.class
B.jar
  com/
    mycompany/
      B.class
      neededImage.gif
bin-folder/
  org/
    apache/
      Something.class

在JVM POV中,您拥有所有这些文件夹的总和,就好像它们在单个文件夹中一样。

因此,您可以随意导入所需的任何类,并指定完全限定的名称(如果它在jar内或项目bin文件夹中),则可以独立进行。

实际上,jar只是文件夹的zip文件,其中包含已编译的类(以及最终的其他资源)。

运行程序时,使用“ -cp”命令行开关将类路径声明为JVM。 例如,对于Windows上的前2个jar和一个文件夹,您将编写:

java -cp A.jar;B.jar;bin-folder your.main.class.Here

将jar添加到项目构建路径后,可以专门导入类,也可以导入java类包。 请参阅以下两个示例。

假设您想在自己的类中使用Scanner类的某些功能。 然后,您必须将Scanner类导入到您的类中(请记住与Scanner类在同一包中还有很多其他类)。

要专门从util包导入Scanner类,可以使用以下语法。

import java.util.Scanner;

这将仅从util包中导入Scanner类,并且仅允许使用Scanner类的功能。

要导入util包中的所有类,可以使用以下语法

import java.util.*;

这将导入util包中的所有类,并且允许您使用该类中任何类的任何功能(不仅限于Scanner类的功能)。

第二种方法称为wildcard import 。特定的导入和通配符导入声明之间没有性能差异。

您不能导入.jar文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM