清理构建Java命令行

3
我正在使用命令行编译使用eclipse编写的项目,如下所示:

javac file.java

然后运行:

java file (args here)

我该如何进行干净的构建或编译?每当我重新编译时,更改不会受到影响,除非我删除所有的.class文件并重新编译。请注意,主文件还将调用其他类。
谢谢

1
如果你已经在Eclipse中有了你的项目,为什么还要在命令行手动编译呢? - Paolo
Eclipse没有将文件名作为参数。它一直显示文件未找到。 - darksky
2个回答

4
您应该编译应用程序中的所有Java文件,以确保基本上没有问题。
选项包括:
  • Use a full build system such as Ant.
  • On a Unix box, use something like:

    javac `find . -name '*.java'`
    

    assuming you don't have too many (or use xargs if necessary).

  • If you're not using packages (and you really should be) you can just use:

    javac *.java
    

哦,是的 - 这就是问题所在...我正在运行Mac OS X。我使用了你上面的代码,但它没有起作用。我该如何编译目录中的所有.java文件? - darksky
此外,建议将所有输出写入目标目录,使用 -d 命令行选项。删除旧内容就像删除目标目录中的所有内容一样简单。 - Dilum Ranatunga
如果OP没有使用包,并且所有的.java文件都在同一个目录中,只需使用javac *.java。这样更简单,而且它具有在没有反引号替换和/或find命令的平台上工作的优点。 - Ted Hopp

2
这是我的处理方法。
rm $(find . -name "*.class")
javac <MainClass>.java
java <MainClass>

这是一个简单的技巧,可以删除所有以“.class”扩展名结尾的文件。当您使用javac编译时,它会重新编译所有文件,而无需担心目录结构。如果您在Windows上,则可以在此处获得“find”的替代方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接