gpt4 book ai didi

java - Java 导入如何工作?

转载 作者:IT老高 更新时间:2023-10-28 20:23:24 26 4
gpt4 key购买 nike

我想知道 import 语句是如何工作的。

我问这个是因为我的项目中有以下 imports:

import static com.googlecode.javacv.jna.highgui.cvCreateCameraCapture;
import static com.googlecode.javacv.jna.highgui.cvGrabFrame;
import static com.googlecode.javacv.jna.highgui.cvReleaseCapture;
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FrameGrabber;
import com.colorfulwolf.webcamapplet.gui.ImagePanel;
import com.googlecode.javacv.OpenCVFrameGrabber;
import com.googlecode.javacv.jna.cxcore.IplImage;

我的项目中没有这些包,那么如何导入?

如果我用我的所有类创建一个 JAR 文件,我的服务器将在哪里托管这个 JAR 文件,必须免费访问 Internet 才能获取这些 package

我的 Applet 有这些导入的问题,我问这个问题,以了解是否可以成为 Internet 规则。

<applet code="com.colorfulwolf.webcamapplet.WebcamApplet"
archive="http://san.redenetimoveis.com/teste.jar, http://san.redenetimoveis.com/core.jar, http://san.redenetimoveis.com/javacv.jar, http://san.redenetimoveis.com/javase.jar, http://san.redenetimoveis.com/jna.jar, http://san.redenetimoveis.com/customizer.jar, http://san.redenetimoveis.com/jmf.jar, http://san.redenetimoveis.com/mediaplayer.jar, http://san.redenetimoveis.com/multiplayer.jar, http://san.redenetimoveis.com/sound.jar"
height="550" width="550">
</applet>

最佳答案

在动态语言中,当解释器 import 时,它只是读取一个文件并对其进行评估。

在 C 中,如果库是静态编译的,则链接器在编译时定位外部库以构建最终对象,而对于 动态库链接器在运行时被调用,它重新映射地址,从而使库中的代码可用于可执行文件。

在 Java 中,import 只是由编译器使用,让您可以通过它们的非限定名称来命名您的类,比如说 String 而不是 java.lang。字符串。您实际上不需要导入 java.lang.*,因为编译器默认会这样做。然而,这种机制只是为了节省你的打字时间。 Java 中的类型是完全限定的类名,因此 String 在代码运行时实际上是一个 java.lang.String 对象。包旨在防止名称冲突并允许两个类具有相同的简单名称,而不是依赖于像这样的前缀类型的old C 约定。 java_lang_String。这称为命名空间

顺便说一句,在 Java 中有 static import 构造,如果您使用来自某个类的大量常量,它可以进一步节省输入。在声明的编译单元(.java 文件)中

import static java.lang.Math.*;

您可以在代码中使用常量 PI,而不是通过 Math.PI 引用它,而是使用方法 cos() Math.cos()。所以例如你可以写

double r = cos(PI * theta);

一旦您了解类在最终字节码中始终由其完全限定名称引用,您就必须了解类代码的实际加载方式。这发生在第一次创建该类的对象时,或者第一次访问该类的静态成员时。此时,ClassLoader 尝试定位类并实例化它。如果找不到类,则抛出 NoClassDefFoundError(如果以编程方式搜索类,则抛出 ClassNotFoundException)。为了定位类,ClassLoader 通常会检查 $CLASSPATH 环境变量中列出的路径。

为解决您的问题,it seems你需要一个像这样的 applet 元素

<applet
codebase = "http://san.redenetimoveis.com"
archive="test.jar, core.jar"
code="com.colorfulwolf.webcamapplet.WebcamApplet"
width="550" height="550" >

顺便说一句,您不需要在标准 JRE 中导入文件。

关于java - Java 导入如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com