【问题标题】:linux to compile multiple java filelinux编译多个java文件
【发布时间】:2008-09-26 08:34:33
【问题描述】:

这是我的目录结构。

/用户/a /用户/b /用户/b

在文件夹a,b,c里面有一个文件person.java(是同一个文件,只是修改了一行。

现在,在我的 shell 上,我在我的 /user/ 目录上,我尝试这样做

   javac */person.java

shell返回以下错误,

person.java:14: 重复类:person

有什么可以解决的吗?

【问题讨论】:

  • 类是否完全一样,顶部的包定义相同?

标签: linux shell javac


【解决方案1】:

我认为这里的问题可能是,javac 试图一次编译所有内容,这自然会导致重复的类定义。

解决这个问题的一个简单方法是

find . -name '*.java' -exec javac {} \;

编辑:

或者更准确地说find . -name 'person.java' -maxdepth 2 -exec javac {} \;

【讨论】:

  • 这里编译所有以 .java 结尾的文件,而不仅仅是 person.java 文件。此外,您不限于一级子目录。
【解决方案2】:

我会选择小的 shell 脚本:

for f in */person.java; do
  javac $file
done

第一行查找子目录下的所有文件person.java,第二行编译文件。

【讨论】:

  • 在 shell 中,是否有一个井可以在控制台“中”键入上述 for 循环,所以我不必创建单独的 .sh 文件?
  • 是的,只需在此处输入您所看到的,或者选择将其全部放在一行中:for f in */person.java;做javac $文件;完成
猜你喜欢
  • 2011-07-26
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 2012-08-14
  • 2012-02-25
  • 1970-01-01
  • 2014-09-10
相关资源
最近更新 更多