在我的classpath中使用Java6通配符有什么缺点吗?例如:
C:> set CLASSPATH=.\lib\*我可以看到,如果有两个jars都包含具有相同路径的类,那么使用通配符可能会导致难以跟踪的结果。
但除此之外,还有什么需要注意的吗?
发布于 2010-08-24 21:16:48
如果这是你想做的,那就去做吧。只要你意识到后果。请记住,如果其他任何人必须维护项目,他们可能会将一堆jars文件复制到该文件夹中,而没有意识到默认情况下它们将被链接。不过,他们应该不会花太长时间来了解发生了什么。
我通常会尽量减少我使用的jar文件的数量,并手动将它们链接起来。我知道这是个人喜好。
发布于 2010-08-24 21:11:42
这样做可能会加载不需要的类,如果同一个库有两个版本,那么就是kaboom。
发布于 2010-08-24 21:19:20
显式的类路径可以作为什么库(以及可能是什么版本)的文档!应用程序依赖于。
如果你使用通配符,你就会失去这一点-如果它没有在其他地方记录,那么如果有人在没有lib文件夹的情况下获得了应用程序的副本(或者你意外地删除了它),他们将很难通过重复运行应用程序,查看ClassNotFoundErrors并希望所有的库都使用合理的包名称来追踪所有的依赖项。
https://stackoverflow.com/questions/3556677
复制相似问题