首页 > 解决方案 > 无需编译即可构建 Java 程序的类似 Node 模块的方式?

问题描述

我正在尝试在 Java 中创建一个模块化结构,其中:

  1. 每个“模块”都可以以松散耦合的方式插入
  2. 无需编译
  3. 每个“模块”都有相同的方法签名

在 node.js 中,我只会做module.exports并要求它从另一个文件中使用,但在 Java 中,看起来没有办法在不编译的情况下运行代码片段。

理想情况下,我想创建一个系统,其中这些模块是即插即用的,就像我可以将文件放在 node.js 的目录中并立即要求和使用一样,没有任何麻烦。Java 文件也不能编译为类文件,因为我希望源代码可见。

有没有这样的方法?

标签: javajava-8

解决方案


当你说

我如何将文件放在 node.js 的目录中并立即要求并使用而不会遇到任何麻烦。Java 文件也不能编译为类文件,因为我希望源代码可见

您的目标是什么并不完全清楚。编译代码(可能是 jar)后,如果您希望程序员可以看到源代码,请使用 IntelliJ 之类的 IDE,它将即时反编译类,您可以导航源代码而无需任何额外的反编译步骤.

正如@Mark Rotteveel 所说,来到主要问题Don't try to shoehorn Java into something it is not。编译为 Java 提供了Platform-Independence.

您可以在此处查看 Java 编译背后的推理和优势 How Java Works


推荐阅读