java - 在不知道Main方法在哪里的情况下编译并执行java源代码?

标签 java compilation

我面临以下问题:

我将收到一个或多个 .java 文件。这个想法是自动化编译和执行过程。

  1. 我没有编写或查看过我收到的 .java 源文件。
  2. 多个目录中可能有 1 个文件或多个文件。
  3. 所有这些都是在 Linux (Debian/CentOS) 下完成的。

这是一个示例:

  • 收到 2 个文件:
  • SomeFile.java 和 SomeOtherFile.Java(这个有 static public void main(String args[]){} 方法,但我不知道!)
  • 进程以这种方式获取文件并编译它们: javac -encoding UTF-8 -sourcepath 。 -d。 *.java

所以我的问题是:我不知道哪个包(如果有)包含 Main 方法,所以我不知道要执行什么?

java packageName.SomeOtherFile

最佳答案

很多方法:

  1. 获取a java source code parser ,解析源码,找到方法
  2. 编译所有内容,使用反射检查生成的 *.class 文件,找到方法。
  3. 如果文件数量足够少,只需尝试全部即可

关于java - 在不知道Main方法在哪里的情况下编译并执行java源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22731544/

相关文章:

java - @Inject 在 session 中创建一个新的bean实例

java - 在循环中使用字体大小

java - Hibernate 在充当主键的另一个实体上进行一对一映射

java - 如何清除应用程序进度中填充的历史记录

java - Java 中的静态导入

c++ - 在windows上编译c++程序

使用 Emscripten 和 Regal 编译用 C 编写的 OpenGL 应用程序 - 使用 Regal 时出现编译问题

c++ - 过多的链接/库会如何影响编译期间的可执行输出?

c# - 什么时候进行提前 (AOT) 编译?

Java AWT 或 Swing 用于 GUI 构建?