Jim*_*ord 23 java linker static jar dynamic
说我在我的lib文件夹中有jcifs-1.3.14.jar,我有一个从库中导入并使用类的类:
import jcifs.smb.*;
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(domain,
user,
pass);
SmbFile file = new SmbFile(path, auth);
// do some operations with the file here
Run Code Online (Sandbox Code Playgroud)
当以这种方式使用库时,它被认为是:A)静态链接或B)动态链接或C)其他什么?
Java中不存在静态与动态,如C++中所示.所有类在引用时都会加载到JVM中,因此您需要认为Java中的所有导入(包括反射)都是动态的.
是的,那个.*很糟糕,因为它引用了该包中的所有类.
好吧,您不会将库中的代码编译到您的 Java 类中。您编译的类通过名称引用其他库中的类。需要时,类由类加载器加载。它更类似于动态链接。
从许可的角度来看 - fg LGPL 许可,它应该被视为动态链接。我从未听说过在这种情况下有任何法律程序(尽管我已经搜索过),但它的可能性很高,我很期待,因为许多开发人员对此有点担心。