我创建了一个JAR文件,然后将其添加到我项目的构建路径中。现在我如何将它导入我的班级,以便我可以使用它?到目前为止,我只尝试了import java-class.jar;
。
答案 0 :(得分:2)
您在Java源代码中导入类,而不是jar文件。
让我们假设您有someJar.jar
,其中包含3个类的类定义,FirstClass.class
,SecondClass.class
和ThirdClass.class
,所有这些类都在包org.somepackage
中。
鉴于上述情况,您需要添加
import org.somepackage.FirstClass
在源文件的顶部,用于导入名为FirstClass
的类。
答案 1 :(得分:1)
为此,您需要在编译和运行时将其添加到类路径中,例如
java -cp myJar.jar a.b.myMainClass
或
javac -cp myJar.jar a/*
答案 2 :(得分:0)
一旦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文件夹中,则可以单独指定完全限定名称。
事实上,罐子只不过是文件夹的zip文件,包含已编译的类(以及最终的其他资源)。
使用" -cp"运行程序时,类路径被声明给JVM。命令行开关。例如,对于之前的2个罐子和一个文件夹,在Windows上,您可以写:
java -cp A.jar;B.jar;bin-folder your.main.class.Here
答案 3 :(得分:0)
将jar添加到项目构建路径后,您可以专门导入类,也可以导入java类包。请参阅以下两个示例。
假设您想在自己的类中使用Scanner类的某些功能。然后你必须将Scanner类导入到你的类中。(请记住,在Scanner类的同一个包中还有更多其他类)。
要从util包中专门导入Scanner类,可以使用以下语法。
import java.util.Scanner;
这将只导入util包中的Scanner类,并且只允许使用Scanner类的函数。
要导入util包中的所有类,可以使用以下语法
import java.util.*;
这将导入util包中的所有类,并且允许您使用类中任何类的任何功能(不仅仅是Scanner类的功能)。
第二种方法称为wildcard import
。特定导入和通配符导入声明之间没有性能差异。
您无法导入.jar文件。