【问题标题】:How to run and compile java project without an IDE and with several packages?如何在没有 IDE 和多个包的情况下运行和编译 java 项目?
【发布时间】:2016-03-10 19:18:38
【问题描述】:

假设我从 github 下载了一个项目,它包含以下文件;

  • docs > text.pdf(里面只有一个文件,不重要)
  • 源代码
  • README.md

现在假设 src 包含以下文件;

  • 包1
    • class1.java
    • class2.java
    • class3.java
  • 包2
    • class4.java
  • 包3
    • class5.java
    • main.java(这是一个有 main 并且需要运行但依赖于其他所有内容的文件)

现在我只有上面的,如果项目没有错误,我如何只使用命令行编译和运行它。

【问题讨论】:

  • 我假设您只是使用 javac 编译 main.java 并使用 java 运行它
  • 不清楚为什么您不想使用 IDE。您可以使用 Maven 还是只使用 javac 来实现?
  • so javac src/package3/main.java ?
  • 只是想单独使用 javac
  • 使用 Maven 或 Gradle。

标签: java


【解决方案1】:

类似:

cd src
javac package3/main.java
java package.main

【讨论】:

    【解决方案2】:
    javac package1/*.java 
    javac package2/*.java
    javac package3/*.java
    
    java package3.main
    

    前 3 个 javac 将在这 3 个包中编译和生成类文件。 最后一行只是运行类文件。

    【讨论】:

    • 不需要。 javac 具有内置的基本 make 功能。
    【解决方案3】:

    编译它完全取决于您拥有的其他工具。像 ant 这样的类似 make 的工具有助于处理依赖项和源文件集,但是您仍然需要确保设置 CLASSPATH 以允许 java 解释器/运行时找到所有这些类文件。

    另一种选择,通常被认为是更好的解决方案,是使用所有生成的类文件创建一个 jar 文件,然后通过执行该 jar 文件来运行应用程序。 jar 文件中的清单将指定主类。

    我可以理解不想安装 IDE 只是为了编译您计划运行但不开发的应用程序,但除非您想手动编译每个文件并更新您的 CLASSPATH,否则我建议您使用某种形式的构建工具简化流程。

    【讨论】:

    • 你的意思是makefile类型的东西吗?我试图写一个makefile,但它似乎不起作用
    • 是的,你需要一个makefile和工具make。 Ant 在 Java 开发人员中很受欢迎,并且运行良好。它理解 Java,但它的配置文件是 XML,因此与 MAKEFILE 的纯文本相比,编辑起来有点麻烦。
    【解决方案4】:

    这是javacmake 类功能的可视化表示。

    请注意,由于所有内容都植根于同一源代码树中,您所要做的就是javac p4/Main.java,它发现它需要编译Main 需要的类(例如p1/T.class)。它首先通过编译p1/T.java 创建T.class

    您还可以通过-sourcepath-classpath 的形式获得额外的支持。详情见javac documentation

    【讨论】:

    • 我不知道它有内置的...不错
    猜你喜欢
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    相关资源
    最近更新 更多