Linux上Java开发的常见实践是什么?

pne*_*ook 23 java eclipse linux tomcat jetty

我正在尝试从Windows迁移到Linux作为Java开发平台,尽管转换通常非常轻松,但我还是有一些不确定性,我希望得到一些反馈.我正在运行openSUSE 11.4,但我很乐意听到其他发行版的功能.

  1. 你从哪里安装JDK?令人惊讶的是,这一切并不像大多数人那样切割和干燥.OpenJDk 6可在openSUSE存储库中使用,并且非常易于安装.但它现在更新21,现在Oracle版本处于更新24.我习惯于在Windows中发出一点警告,通知我我的Java需要更新,但这似乎不是Linux的常态.Java开发人员是否在其包管理器中放弃了JDK并直接安装二进制文件?或者还有另一种方式吗?
  2. 你在哪里安装Eclipse?在网上似乎有一个普遍的协议,Eclipse最好通过简单地下载二进制文件并将其解压缩到某个地方来安装,但是通常的地方我会提取像Eclipse或Ant这样的程序?我看过/ usr/local和/ opt在线投票,但没有明确的答案.
  3. 你把Jetty/Tomcat放在哪里?与eclipse问题类似,大多数Linux Java开发人员将Jetty/Tomcat /其他容器放在哪里.
  4. 设置开发与生产的方式之间有什么区别至少看起来我不想以root身份运行我的servlet容器,这对我来说很有意义.但是我应该注意哪些其他做法?还有什么能够让我的开发环境变得更容易,但可能不那么安全吗?

我发现这个问题类似,但最终过于高级,并没有详细了解实际开发人员如何设置他们的环境.如果您有其他资源可以回答这些问题,请在此处分享.

谢谢你的时间.

min*_*das 7

问>你从哪里安装JDK?
A>我从不打扰来自Sun/Oracle以外的其他JDK,主要是因为我们的产品仅经过认证可与Sun/Oracle JRE配合使用.在我的桌面上,我运行Kubuntu,但我从不使用apt-get它,但总是手动下载它们.原因:

  • 发行版维护人员很少急于升级软件包,因为他们主要关注的是使依赖应用程序(如OpenOffice)工作.如果JDK从1.6.0_20更改为1.6.0_21,他们根本不在乎.我可能会这样做,因为较新的补丁可能有一个重要的错误修正或我只是想尝试我的应用程序仍然通过所有单元测试.
  • 保留旧的JDK版本可能是一场噩梦.我们仍然支持我们产品的旧版本,如果我升级到更新的Kubuntu,我不能保证一些古老的JDK仍然可以作为一个包提供.
  • 我不确定某些发行版甚至支持在同一台机器上存在多个JDK.

我的首选是保留所有JDK/JRE /opt并对最新的或最需要的那个进行符号链接.我根本不明白为什么手动安装JDK是个问题.

我还设置了PATH最新的JDK/JRE.

同样的事情(和类似的论点)适用于AntMaven.

问>你在哪里安装Eclipse?
A>我使用IntelliJ,但同样适用.我将IDE存储在我的主文件夹中.这允许我有不同版本的它,更新它们而不需要sudo等等.我也可以安装它/opt但我想我习惯这个习惯当我每周下载和测试最新的IntelliJ IDEA EAP时所以我可以快速删除旧的版本,不污染/opt.最后,其他程序可能需要Ant/Maven/JDK,但只有我使用IntelliJ因此采用不同的方法.

问:你把Jetty/Tomcat放在哪里?
A>我有一个单独的文件夹tomcats/home,我有〜10个不同的Tomcat实例.每个Tomcats都用于我的应用程序的不同版本(我们将Tomcat与我们的应用程序捆绑在一起).这是必要的,因为我们的应用程序的一个部署可以具有不同的Tomcat设置(甚至版本).

问:设置开发与生产的方式有什么区别
A>这在很大程度上取决于您的应用.例如,我们需要一些分区具有较低的访问延迟,但具有较小的空间(例如Lucene索引的千兆字节)VS其他可能具有更高延迟但需要更多空间(例如内容存储库的太字节数)的空间.但是,我们设计了我们的应用程序,以便所有这些不同的方面可以驻留在可配置的不同分区上.某些分区需要有特殊限制(例如文件上传),因此不会溢出其他分区.对这个问题没有简单的一对一的答案,但显然大多数这些问题对于开发环境来说并不重要.