使用这两种方法的优点和缺点是什么?
我实际上在Netbeans的Project Properties > Libraries for Java Applications下看到了它。我们有两个选项卡,一个用于编译时库和运行时库,看起来我们可以向其中任何一个添加独立的库
发布于 2011-02-03 01:47:46
库属性对话框的UI和术语非常混乱。
该对话框上的帮助按钮将为您提供大量信息。
编译时库列表可以是运行时库列表的子集。
考虑这种情况..。
你有从'widgets.jar‘库中导入类的源代码。widgets.jar中的类文件引用jar文件'xml.jar‘中的符号。如果您的源代码不从xml.jar导入类,则可以将编译时库列表定义为只包含widgets.jar。
当您尝试运行您的项目时,您可能需要在运行时库列表中包含xml.jar以防止ClassNotFoundException。
发布于 2010-06-22 11:29:19
并不存在编译时库与运行时库的区别
也许你混淆了一些概念。
在Java中,要使用的库是在编译时静态验证的,也是在运行时验证的。
例如,如果您想要使用在Apache Collections库中指定的IterableMap。编译器在“编译时”验证您正在调用的类中存在的方法。
但是编译器不会链接这个库,也不会对它做很多事情,你仍然需要在运行时使用它。因此,当您的代码执行时,Java运行时再次搜索该类,并调用编译器验证存在的方法。
这就是问题所在。
发布于 2012-04-26 11:44:24
也许,当您想要动态加载库,或者检查库的存在,然后执行代码时,这就会起作用。
在编译过程中,编译器需要知道方法、类等的签名,才能知道代码是否正确。因此,您添加了编译时库。
在运行时,JVM仍然需要库来运行特定的代码。但是,您可以通过检查库是否存在来放置一个逻辑来避免该代码,例如,通过执行Class.for()方法。一些库可能已经存在于系统中(例如qt.jar),也可能不存在,您可以相应地检查和执行代码。
如果我错了,请纠正我。
https://stackoverflow.com/questions/3090062
复制相似问题