Java 如何按依赖关系的顺序生成类列表?

Java 如何按依赖关系的顺序生成类列表?,java,oracle,ant,plsql,dependencies,Java,Oracle,Ant,Plsql,Dependencies,我正在为在Oracle JVM中运行的Java应用程序编写一个构建脚本。为了导入50多个类,我似乎需要将它们按顺序排列,以便在编译之前存在任何依赖项 对于每个类,我为每个文件运行“create或replace并将java源代码{className}编译为{classPath}”。这样做会导致编译错误,因为未导入所需的类 我如何生成一个类列表,按照依赖关系的顺序-也就是说,当您沿着列表往下看时,上面列出了类的依赖关系。我更愿意把这当作一项蚂蚁任务来做 另外,如果你对如何导入这些类有更好的想法,我很

我正在为在Oracle JVM中运行的Java应用程序编写一个构建脚本。为了导入50多个类,我似乎需要将它们按顺序排列,以便在编译之前存在任何依赖项

对于每个类,我为每个文件运行“
create或replace并将java源代码{className}编译为{classPath}
”。这样做会导致编译错误,因为未导入所需的类

我如何生成一个类列表,按照依赖关系的顺序-也就是说,当您沿着列表往下看时,上面列出了类的依赖关系。我更愿意把这当作一项蚂蚁任务来做

另外,如果你对如何导入这些类有更好的想法,我很想听听你的想法

为了导入50多个类,我似乎需要对它们进行排序,以便在编译之前存在任何依赖项

我从来没有做过这样的事情,只是为了编译Java


这就是蚂蚁出生的原因。我建议你和Ant一起做这件事。设置,您将不会遇到任何问题。

暴力方法:将创建的50个文件放入批处理文件中,并执行它,直到找不到错误为止。在shell脚本中创建循环。当然,如果源代码中有错误,它永远不会结束,但我假设它们没有问题。

使用任务编译文件系统中的类。如果需要更严格的依赖项检查,请使用该任务。使用该工具将
.class
.java
文件以任意顺序加载到数据库中。

我无法想象为什么需要这样做,但如果确实需要这样做,我想知道如果破解一个小类加载器,在加载时打印出每个类,然后从那里加载你的应用程序,是否会给你一个依赖关系图?

你不能加载到jar文件中吗?为什么它必须是单独的类?

作为一种技巧,在所有编译错误之后,我尝试运行
alterjava类”/d6c58067\ujdbcpayslipdao“RESOLVE。这不起作用,仍然抱怨编译错误。您只关心静态依赖关系还是还需要了解Class.forName(“Foo”)?只是静态依赖关系您是对的,在Java或Ant的世界中,这是通过SQLPlus将Java类加载到Oracle中。我正在使用Ant构建Deployment构件,并动态生成SQL来加载类(即创建…),我认为客户不会同意这一点。到目前为止,他们已经实施了相当严格的实践&似乎倾向于我手动分析类,以按顺序生成类列表。查看当前的
dbms\u java.loadjava()
。应该注意,java中的依赖关系可能是循环的。在这种情况下,没有一个真正有效的订单。