是否存在用于组合java文件的工具

时间:2010-09-29 12:18:05

标签: java

我正在加入一项竞赛,要求我将所有java类放在一个.java文件中。是否存在为我执行此操作的工具(包括更改类的可见性以便能够执行此操作)?

加法:感谢您试图帮助我阅读比赛网站,但我引述:

  

可以制作多个   你的课程,但你会   必须把所有类的来源   在单个.java文件中(编译器   将生成多个.class文件   无论如何)。当你这样做时,你应该这样做   不公开你的课程,或   编译器会抱怨它。

因此,只允许1个.java文件(没有jar),在该文件中,除了我的公共主类之外,我可以有多个非公共类(而不仅仅是建议的静态内部类)。

2 个答案:

答案 0 :(得分:3)

如果您可以访问Unix-y shell(对于Windows,您可以安装例如Git用于体面的Bash实现,它为您提供了一个很棒的VC工具):

cat *.java | sed 's/public class/class/g' >AllTehCodez.java

不必比那更复杂(当然,除非你有很多包含子串“public class”的字符串)。

编辑:不适用于打包和导入。但...

(
  egrep -h ^package *.java | head -1
  egrep -h ^import *.java | sort -u
  egrep -hv '^(import|package)' *.java | sed 's/public class/class/g' 
) >AllTehCodez.java

这当然假设所有类都在同一个包中。

答案 1 :(得分:0)

如果我们按照上面提到的方式排除各种“bijou脚本haquettes”,我严重怀疑是否有任何严肃的工具。

为什么呢?因为这种废话违背了所有已知的Java风格规则和惯例!

该网站背后的人需要了解存档文件格式;例如TAR,ZIP,JAR。

修改

我把它拿回来。他们了解JAR文件。引用他们的一份文件:

  

使用您自己的可执行Java jar和Caia

     

您也可以使用自己的Java jar   Caia比赛。我们写了   jarwrapper为此。的来源   jarwrapper.c放入   caia_install_ / jarwrapper /   夹。在Windows发行版中,这是   放入src /文件夹。

     

假设您的类文件的名称是   JavaPlayer.class。你唯一的事   必须做的是重命名   来自bin /文件夹中的可执行文件   jarwrapper到JavaPlayer。该   可执行文件现在将执行   命令:java -jar JavaPlayer。罐子   文件应该包含一个清单   用主要指向班级   方法

     

在manager.txt中,您可以使用该程序   名称JavaPlayer,指的是   启动Java jar的可执行文件   播放器。