Java eclipse如何判断文件是否具有unix或dos样式的行尾?

Java eclipse如何判断文件是否具有unix或dos样式的行尾?,java,eclipse,clearcase,line,Java,Eclipse,Clearcase,Line,我正在研究Windows上Eclipse中的一些Java代码。行终止字符(DOS样式)显示不正确(各处空行..) 问题是代码来自Windows ClearCase vob,我没有签入权限,因此它是只读的(无法使用自动格式更改行终止字符)。创建完整副本并更改行终结符是不可能的,因为在我查看时代码可能会更改 我发现Preferences->Workspace->“New text file line delimiter”,但这似乎不能正确显示现有文件中的行终止字符 我如何使eclipse按其显示的方

我正在研究Windows上Eclipse中的一些Java代码。行终止字符(DOS样式)显示不正确(各处空行..)

问题是代码来自Windows ClearCase vob,我没有签入权限,因此它是只读的(无法使用自动格式更改行终止字符)。创建完整副本并更改行终结符是不可能的,因为在我查看时代码可能会更改

我发现Preferences->Workspace->“New text file line delimiter”,但这似乎不能正确显示现有文件中的行终止字符

我如何使eclipse按其显示的方式显示文本文件

编辑: 记事本正确显示文件。Ultra Edit还将其检测为unix样式,并建议将其转换为DOS(但拒绝时会正确显示)。 gvim将文件检测为unix,并显示^M和行尾

我已检查了二进制文件,它不包含任何不在\r字符后面的字符。Eclipse是否还有其他方式将unix与dos风格的行结尾区分开


我找到了以下字符序列:0d0d 0a0d 0d0a(\r\r\n\r\n)。我想这就是它不起作用的原因。

您运行的是什么操作系统? Eclipse自动检测行终止符。 我从未见过它失败并显示额外的换行符。是否可能您的文件实际上没有双换行符?
也许可以尝试使用另一个编辑器(notepad++,editplus)查看它。

我们处在一个混合环境中,有ClearCase(Unix VOB服务器)和Windows ClearCase客户端,还有Eclipse

我没有注意到这样的问题,但我知道某些类型可以由ClearCase以特定的方式进行管理:请参阅。
通过描述(cleartool描述)导致问题的文件类型,您可能会看到一种特殊的文件类型,这可能是第一种解释


另一个经典原因可能包括ClearCase触发器,它会以某种方式损坏所述文件的内容。

转到首选项->常规->工作区 您将看到文本文件编码,您可以将其更改为您喜欢的编码
还有一个新的文本文件行分隔符
,您必须选择使用unix、windows或mac os

我对行尾也有同样的问题,我注意到Eclipse中的快速可见性问题(与记事本++相比),但我注意到它可以通过使用内置功能快速找到:

在工具栏中有一个按钮“显示空白字符”(符号Pi:“”),当您按下该按钮时,您将在行尾显示以下字符之一:

  • 用于具有Windows EOL(CRLF)的文件
  • ¨
    用于具有Unix EOL(LF)的文件
这样,您就可以通过使用
文件
菜单查看所使用的EOL编码并对其进行转换


如果使用例如
git
,还可以设置一个选项,以自动转换具有特定EOL的所有提交。但有时由于未知的原因,即使我在Linux虚拟机下使用Eclipse,这些文件也会在Windows EOL中丢失。Eclipse内置特性允许一眼就能看出编码是什么

Eclipse自动检测行终止符。我也从来没有看到它让我失望过(+1)好吧,这可能是一个非常糟糕的设置,我必须在其中工作-Windows和unix Clearcase是混合的,文件也以各种其他方式传输,还涉及外包(到很远很远很远的国家)。你需要项目中的每个人都同意一些新行类型并坚持下去。您可以使用Eclipse转换行终止符(文件->转换换行符或其他),我认为问题在于开发人员缺少规程(和技术知识)。有人不知怎的想出了如何向文件中添加一些额外的\r,请参见上文..我做了一些初步的研究和测试。我发现这与Eclipse本身无关,而是与实际文件本身有关。当签入SVN和CVS等版本控制系统时,它们被错误地编码,因此当它们被签出时,它们在Eclipse中显示为双线,而在其他编辑器中显示为单线。您可以使用UltraEdit将(全部替换)“^p”(不是空格)替换为
^p
,暂时解决此问题,但永久解决方案是正确的SVN/CVS配置。