【问题标题】:reformat java code重新格式化java代码
【发布时间】:2011-04-20 22:55:57
【问题描述】:

我正在处理一个保存在 linux 中的项目 我在 windows IDE 中打开它,奇怪的是它在所有 .java .jsp 和其他文本文件中插入了换行符

我喜欢在项目的根目录递归删除所有那些空行。

是否有人可以运行一些 shell 脚本来更改这些文件?

提前致谢,安德烈。

【问题讨论】:

  • 您使用的是什么 Windows IDE?
  • 我忘了说,我使用的是 NetBeans。

标签: java shell


【解决方案1】:

您可能想看看是否可以配置您的 IDE/编辑器来处理文件而不是转换它们。如果您使用源代码管理,则更改所有行结尾会将 every 文件中的 every 行标记为“已修改”,这将使跟踪变得困难(如果不是不可能的话)如果/当您将代码迁移回 Linux 系统时会发生变化。

【讨论】:

  • 这个项目它不在源代码控制上(有一段时间),但是一旦我解决了这个双空格问题,我会将它导入到 SVN。
  • 其他人的回答都没有奏效,因为当我用十六进制编辑器查看时,文件中的断线在同一个文件中混合(OD)和(ODOA),所以 unix2dos 没有解决, 和 Remove Trailing whitespace 也不。我也试过 run shed 命令,但也没有用。
【解决方案2】:

在旁注中,不是直接回答您的问题(似乎已经有很好的答案),如果可能的话,我建议您花一点时间统一设置您的 IDE 环境,以便它们兼容.

我在使用 Eclipse 方面拥有丰富的经验,因为它适用于所有主要的操作系统平台,并且可以选择将基本项目设置保存在您使用的任何存储库中,从而使您能够拥有相同的设置,例如换行符是处理得当。

另外,为了确保每个人都拥有相同的 Eclipse 配置、插件版本,甚至是基本的工作区配置,我强烈建议使用 Eclipse 配置管理工具,如 Yoxos,因为它使您能够为每个项目专门配置 Eclipse 配置,并分发在与处理依赖关系、更新等的 Yoxos Launcher 程序关联的基于 XML 的简单文件中进行上述配置。

到目前为止,我已经参与了很多项目,甚至在我们使用 Linux、Windows 和 Mac OS X 进行开发的团队中,配置、换行符都没有(或尽可能少)问题、插件版本等,因为在简化 IDE 设置方面付出了额外的努力。

【讨论】:

    【解决方案3】:

    您使用的是哪个 Windows IDE?这是日食吗?如果是的话。

    Window -> Preferences -> Java -> Code Style -> Clean Up -> Edit -> Remove Trailing whitespace

    希望这会奏效

    【讨论】:

    • 我使用的是NetBeans,它有一个类似的功能菜单:Source -> Remove Trailing whitespace... 但它不会删除空行。
    【解决方案4】:

    您可能只需要在文件上运行 dos2unix。将其通过十六进制查看器以查看行尾是 0D 0A (CR/LF) 还是实际上是两个换行符或其他内容。如果是前者,dos2unix 将工作。比如:

    find . -name \*.java -exec dos2unix \{\} \;
    

    从您的根源目录。先测试,做备份等。

    【讨论】:

    • 听起来他的情况正好相反:他的源来自 Linux 系统(行以 LF 结尾),现在他在 Windows 上。有unix2dos吗?
    • 有,但不能保证它在 Windows 上可用。我需要更多信息才能确切知道发生了什么(“它”是什么,对文件进行了哪些二进制更改等)。
    猜你喜欢
    • 2020-04-09
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    相关资源
    最近更新 更多