gpt4 book ai didi

java - C/C++ (dll) 与 JAVA (JAR) 中的动态链接

转载 作者:行者123 更新时间:2023-11-27 22:51:41 25 4
gpt4 key购买 nike

我是 java 编程新手。

基本上,当我们在 c/c++ 编程中工作时,我们使用 .h 和 .c 文件创建 dll 文件,其中 .h 文件包含声明,而 .c 文件包含这些类、函数的定义。当我们想在其他项目中使用创建的 .dll 文件的那些功能时,我们在预处理器声明中包含 .h 以告诉编译器有关变量、函数的声明,并且我们在编译期间提供相应的 dll 文件路径,以便在链接器阶段它与 dll 通信.

这是我的问题,他们如何在 Java 编程中管理它,因为它不包含任何头文件。它只有 .java 文件,其中这些文件组合在一起并创建了 JAR 文件。当我想在另一个项目中使用这个 jar 文件时,我们使用“package”或“import”关键字但是当它说导入总文件将被导入逻辑和链接器如何在编译阶段进行管理??

最佳答案

how do they manage this in java programming because it doesn't contain any header files.

它通过在 .class 文件中放置针对类编译和运行时(可能还有调试)所需的所有信息来管理这一点,因此不需要额外的信息。

通常源代码和 javadoc 也放在 JAR 中(有时是同一个 JAR)

when i want to use this jar file in another project we use "package" or "import" keyword

你不必。这只是一个短手。您可以使用完整的 package.ClassName 并且不需要 import。注意:这不会导入任何代码或数据,只是允许您为类使用一个较短的名称。

例如没有区别

java.util.Date date = new java.util.Date();

import java.util.Date;

Date date = new Date(); // don't need to specify the full package name.

when it says import total file will be imported with logic

没有办法,也没有必要这样做。例如,没有什么像#include内联只发生在运行时,而不是编译时(编译时已知的常量除外)

how do linker manage at compilation step

本地代码的链接和编译是在运行时执行的。 javac 编译器所做的只是检查代码的有效性并生成字节码供 JVM 读取。

关于java - C/C++ (dll) 与 JAVA (JAR) 中的动态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36646687/

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