java - 如何在没有 IDE 的情况下设置 Java 工作区

标签 java jar compilation executable-jar workspace

我通常使用 IDE 编写代码,例如 Intellij Idea 或 Eclipse,但由于多种原因,我无法再使用 IDE,我希望能够通过 ssh 终端在远程 Linux 机器上使用 Java 编写代码. 只用几个类制作简单的程序很容易,但我的一些项目有几个库和几个单独的 .java 文件。我还需要导出到 .jar 文件。

例如,我有以下文件组织:

project/
   src/
      a.java
      b.java
      c.java
   libs/
      lib1.jar
      lib2.jar
   out/
      export_here.jar
   someconfig.conf

java 应用程序由 a、b 和 c .java 文件组成,使用库 lib1 和 lib2,并且文件 someconfig.conf 需要在导出 jar 中。

我想知道如何轻松编译和构建这样的项目。

换句话说,我只想知道如何以正确的方式将我的项目导出到可运行的 jar 中。

我希望这可以通过一些命令来完成。如果是这样,我打算制作一个 shell 脚本来自动执行所有操作。

提前致谢!

最佳答案

根据其他用户的建议,您需要使用构建管理工具来执行此操作,例如 Ant, Maven etc .我经常使用 Ant quiet 来完成这些自动化任务。为了安装和使用Ant,您可以引用How To Install Apache Ant

之后的主要任务是编写您的自动化脚本,这在 Ant 世界中称为构建 xml。这是一个示例 build.xml 文件,您可以从以下文件开始引用:

<project>

    <target name="clean">
        <delete dir="build"/>
    </target>

    <target name="compile">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>

    <target name="jar">
        <mkdir dir="build/jar"/>
        <jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="oata.HelloWorld"/>
            </manifest>
        </jar>
    </target>

    <target name="run">
        <java jar="build/jar/HelloWorld.jar" fork="true"/>
    </target>

</project>

以及有关上述示例的更多信息 You can visit this

一般而言,您可以在 How to create build.xml 阅读更多内容

创建 build.xml 后,您可以通过 ant <path to build.xml> 运行 ant或 ant如果您的 build.xml 位于当前目录中

希望这对你有帮助

关于java - 如何在没有 IDE 的情况下设置 Java 工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24502187/

相关文章:

java - 使用 spring-security-saml 在应用程序中没有配置 IDP 错误

java - 如何将 JDK 文档 jar 文件(包含 JDK 类(如 String 等)文档的文件)添加到 JDeveloper?

java - Android Studio 多重 Dex 错误

java - 如何分发 java GUI 构建器项目

java - 如何将 2 个 APK 加入到 1 个 APK 中?

java - Apache Cassandra 中的 DML 是什么?

c - x264 配置链接和构建问题

linux - 扩展 iptables 内核模块

java - 使用double而不是int循环

java - 如何在本地 lib 目录中确定此 jar 的 maven 坐标?