首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java文件上的Dos2unix

Java文件上的Dos2unix
EN

Stack Overflow用户
提问于 2018-03-06 17:34:10
回答 3查看 967关注 0票数 2

如果dos2unix命令在编译之前运行在Java源文件上,是否会产生任何影响或影响?Java文件将从Linux中的CVS存储库下载,然后由Ant脚本编译到jar中。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-06 18:09:15

甚至不需要对此进行测试(理论上):在Java语言中,行不显示任何语义意义。因此,存在与编译器无关(也就是说)。

因此,人类的读者会发现,如果看到源代码中有零换行符,或者在任何合法的地方都有换行符,这是非常令人不快的--对于编译器来说,这并不重要。

因此,像dos2unix这样的工具不应该对源代码进行任何可能产生“语义”差异的更改。

当然,真正的答案是:不要把你的时间花在担心线路中断上。从1999年到2018年,投资整个系统(比如用git替换CVS,用maven/gradle替换Ant )。

票数 2
EN

Stack Overflow用户

发布于 2018-03-06 17:45:16

不是的。它所做的只是处理行尾。

票数 0
EN

Stack Overflow用户

发布于 2018-03-06 17:50:08

实际试验

首先,我创建了一个名为Main.java的Linux行尾测试文件,这并不奇怪。

代码语言:javascript
复制
0x63 [ c]  0x6c [ l]  0x61 [ a]  0x73 [ s]  0x73 [ s]  
0x20 [  ]  0x4d [ M]  0x61 [ a]  0x69 [ i]  0x6e [ n]  
0x20 [  ]  0x7b [ {]  0x0a [\n]  0x7d [ }]  0x0a [\n]  
0x0a [\n]

转换到监督事务司的结尾给出了以下结论:

代码语言:javascript
复制
0x63 [ c]  0x6c [ l]  0x61 [ a]  0x73 [ s]  0x73 [ s]  
0x20 [  ]  0x4d [ M]  0x61 [ a]  0x69 [ i]  0x6e [ n]  
0x20 [  ]  0x7b [ {]  0x0d [\r]  0x0a [\n]  0x7d [ }]  
0x0d [\r]  0x0a [\n]  0x0d [\r]  0x0a [\n]

它仍然编译,并转换回:

代码语言:javascript
复制
0x63 [ c]  0x6c [ l]  0x61 [ a]  0x73 [ s]  0x73 [ s]  
0x20 [  ]  0x4d [ M]  0x61 [ a]  0x69 [ i]  0x6e [ n]  
0x20 [  ]  0x7b [ {]  0x0a [\n]  0x7d [ }]  0x0a [\n]  
0x0a [\n]

和以前一样

线尾

Windows ( dos )和Linux / Mac ( unix )行尾的区别是,在unix上结束的行是\n,而以dos结尾的行是\r\n

结果

  • 由于unix2dos / dos2unix只更改行尾,因此不会更改内容
  • 至少在Linux上,javac可以编译源文件,其中任何一行都可以成功结束。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49136817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档