Linux上Java开发的常见做法是什么?

2022-09-01 21:20:55

我正在尝试从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. 你把你的码头/雄猫放在哪里?与 eclipse 问题类似,大多数 Linux Java 开发人员将他们的 Jetty/Tomcat/other 容器放在哪里。
  4. 设置开发与生产的方式之间有哪些区别至少看起来我不想以根身份运行我的servlet容器,这对我来说是有意义的。但是,我还应该注意哪些其他做法呢?还有什么可以使我的开发环境更容易,但可能不太安全?

我发现这个问题是相似的,但最终级别太高,并且没有详细说明实际开发人员如何设置他们的环境。如果您觉得有其他资源可以回答这些问题,请在此处分享。

感谢您抽出宝贵时间接受采访。


答案 1

问>您从哪里安装 JDK?
答>我从不关心来自 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,并与最新的或我最需要的符号链接。我根本不明白为什么手动安装JDK是一个问题。/opt

我还将 设置为最新的 JDK/JRE。PATH

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

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

问>你把你的码头/雄猫放在哪里?
答>我有一个单独的文件夹,下面我有大约10个不同的Tomcat实例。每个Tomcats都用于我的应用程序的不同版本(我们将Tomcat与我们的应用程序捆绑在一起)。这是必要的,因为我们应用程序的一个部署可能具有与另一个部署不同的Tomcat设置(甚至版本)。tomcats/home

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


答案 2

您从哪里安装 JDK?

我自己使用Arch Linux,我们在存储库本身中有oracle jdk/jre。因此,使用你的发行版存储库,如果它有oracle jdk/jre,否则从oracle本身获取它。

你在哪里安装Eclipse?

同样,与上述相同的答案也适用于此。但是,如果发行版提供的版本有任何问题,我总是将我的自定义安装放在/opt/ - /opt/java,/opt/eclipse,/opt/netbeans等中。我不会在我的个人文件夹中安装东西(除非在其他任何地方都没有权限的情况下 - 很少见),因为这意味着其他用户需要访问我的个人文件夹才能运行这些东西。我不希望生产(或开发)的东西可以直接进入我的家。

你把你的码头/雄猫放在哪里?

与上述相同的答案也适用于此。只有在我安装了多个版本的情况下,我才会创建一个 /opt/experimental/ 并安装在那里,以便我知道我的生产正在运行哪一个,以及当不再需要时可以删除哪个版本。

您设置开发与生产的方式之间有什么区别?

如果可能的话,我总是为生产和开发工作设置不同的机器。不同的计算机,但设置完全相同。唯一可以将代码推送到生产系统的系统是开发组中的系统。如果无法进行这种隔离,我更喜欢为服务器安装不同的版本,以便在调整开发配置时,我的主服务器不会崩溃或其他情况。此外,开发设置通常包括一个clean_up脚本,使其准备好投入生产(删除数据库帐户不必要的特权,清理等)。

拥有任何东西,设置你愿意,只要确保你有不同的数据库设置用于开发和生产目的。


推荐