Joa*_*uer 36

据我所知,virtualenv使您可以拥有单独的库安装路径,有效地分离"虚拟"Python安装.

Java没有"系统范围安装"库(*)的概念:它总是在类路径中搜索要加载的库.由于类路径可以(并且需要为每个应用程序定义!),因此每个应用程序都可以选择要加载的库和版本.

如果你深入到一个级别并且只有一个应用程序同时需要同一个库的两个不同版本,那么你甚至可以用一些类路径技巧来做.它可能变得复杂,但它绝对可能(OSGi是支持它的一个例子,即使Tomcat有两个独立的web应用程序也可以).

我在virtualenv描述中看到了一些安全性的引用:Java内置了一个非常全面的安全系统.在服务器应用程序中,它经常被关闭,因为它更容易以这种方式配置,但是您可以轻松配置Java应用程序的确切内容.允许这样做.

(*)几乎有扩展或扩展库,但它们没有被大量使用,甚至可以从任意目录轻松加载它们.

  • 对于包来说可能是这样,但 python 虚拟环境帮助管理的另一件事是 python 本身的版本。Java 开发人员如何处理使用不同 Java 版本的项目? (4认同)

小智 6

像Ant,Maven和gradle这样的构建工具是最接近pip或者的东西easy_install.

virtualenv的概念由类路径完成.所以没有真正需要virtualenv for Java


Ben*_*yde 5

是的(参见http://www.jenv.be/),就像许多其他语言一样(Ruby、Python、Go、R、Php 等)。