首页 > 解决方案 > 如何从头开始构建一个自包含的 java 程序的目录结构?

问题描述

我正在用java编写我的第一个2D游戏。我正在用 Atom 编写代码。我从 Mac 上的终端编译并运行代码。游戏到目前为止运行良好!但我担心我的项目结构不正确,到时候将无法部署它。我想知道为像基于 Java 的 2D 游戏这样的项目构建目录结构的正确方法,最好是从头开始。

我搁置了游戏制作以弄清楚结构。我尝试使用 LibGDX 作为打包项目的一种方式,然后将其作为 Gradle 项目导入 Eclipse。我突然发现自己在我曾经简单的项目周围有一个巨大而不清楚的目录结构。我觉得这项任务并不比自己从头开始构建项目更简单。此外,我无法从 LibGDX 提供的这个自动生成的目录结构中运行任何简单的 java 代码,现在在 Eclipse 中。我更愿意在 Atom 中编写所有代码,并从终端编译和测试代码,必要时再次从终端创建适当的 JAR。

我决定简化手头的任务并返回 Oracle 文档,并确定我正在尝试构建的是一个自包含的 Java 应用程序。甜的!但是 Oracle 文档似乎并没有深入探讨此类项目所需的必要目录结构背后的逻辑。他们告诉您您需要的两个主要组件是应用程序的资源(即 .java 文件、图像和音频等)和 JRE 的副本,以便用户在执行时拥有玩游戏所需的一切该程序。我只是对如何使用提供的信息设置此目录结构没有信心。

我想克服这个“这一切应该如何构建?” 问题,所以我可以返回开发游戏。提前感谢您阅读并提供反馈。

标签: javagame-developmentself-contained

解决方案


构建 Java 项目的行业标准是使用 Maven 或 Gradle 等工具。这两个工具都会自动处理所有源代码、资源文件等的处理,并拥有可以轻松导出 jar 文件(从 IDE 或命令行)的系统。从本质上讲,它们允许您为 Java 项目的构建方式指定任何您想要的内容(Gradle 也可以执行 C++ 项目),然后它们提供了一个抽象的命令行界面来构建项目。

需要注意的是,许多开发人员并不赞同您在没有 IDE 的情况下使用 Java 的偏好。虽然这本身不是问题,但当您想与将使用 IDE 的其他人一起工作时,它就会成为问题。Gradle 和 Maven 都使这变得容易,因为几乎所有 IDE 都可以很好地与 Gradle 和 Maven 项目配合使用。出于这个原因,大多数 FOSS Java 项目使用其中一个系统(通常是 Gradle)来允许不同的开发人员使用他们喜欢的 IDE。

您还表示希望完全理解构成您的项目的文件集。为此,Gradle 可能是您最好的选择,因为它的教程很好地解释了这一点。它比普通的 Java 项目更复杂,但对于大多数开发人员来说是值得的,因为您可以获得非常简单和富有表现力的工具(例如,3 行 Gradle 配置可以创建 jar 导出)以及使用许多开发堆栈的能力(例如 IDE、命令行和持续集成)以较小的学习曲线为代价。Gradle 也是当前最流行的不依赖 IDE 的 Java 构建工具。Maven 的行为有点像一个黑匣子,但仍然具有 Gradle 的许多优点。如果你想学习 Gradle,他们的入门指南是一个很好的起点。


推荐阅读