【发布时间】:2021-07-21 08:01:05
【问题描述】:
我有一堆 .java 文件。它们都有相同的类名public MyClass。他们都有一个main 方法。他们都可能在顶部有一个package 声明,也可能没有,我不知道提前。
我正在尝试编写一个脚本来编译和运行这些 java 程序。这对于没有package 声明的文件来说很容易......我只是做了一些cp 操作来设置,javac MyClass.java 和java MyClass,然后rm 进行拆卸。但是,带有package 声明的文件需要特别注意。我有几个选择,包括删除package 行,或尝试读取package 行,以便我知道生成的目录结构应该是什么。这两个都需要我去解析.java文件,这让我很难过。
有没有办法编译和运行这些文件而不必解析.java 文件?比如:
javac --ignore_package_structure MyClass.java
会很理想,但快速浏览一下javac 手册页表明这样的事情不存在。
【问题讨论】:
-
你是说你所有的文件都命名为
MyClass.java?公共类名必须与文件名相同(不带.java)。 -
是的,它们都被命名为
MyClass.java。我的意思是我有许多不同的 java 程序(这些是学生提交的)。我想分别编译和运行它们。 -
(these are student submissions)当您运行MyClass文件时,您如何决定哪个学生获得该结果的学分? -
@ublec 仅当类是
public时才被执行。 -
@markspace 文件是有组织的,所以我知道哪个文件属于谁...