有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javaprintln:Windows与Linux

我有一个java程序,它使用jcifs库(samba stuff)将文件写入远程机器文件系统;SmbFile=>;SmbFileOutputStream=>;PrintStream和I使用公共println(字符串)。在我将应用程序移到linux机器之前,一切都很顺利,现在远程windows机器上打印的文件看起来很奇怪

我认为问题在于两个操作系统如何处理println()函数插入的CR,LF。我的'jar'每天执行一次,由'crontab'通过'sh'启动文件触发

  • 有没有一种方法可以在不涉及java代码的情况下解决这个问题
  • 有没有一种方法可以编写一个java程序,使它在这两种OSs(可能是所有OSs)上都能工作

多谢各位


共 (4) 个答案

  1. # 1 楼答案

    系统。出来println是一个PrintStream,其中uses the environment setting代表line.separator作为它的行分隔符。解决你问题的一个办法是通过电话。分隔符参数

    不过,最好的解决方案可能是使用更好的编辑器查看文件。Notepad++和Windows上的许多其他软件都能理解这两种行尾,而Notepad则不能。即使是内置的写字板也能更好地显示unix文件的结尾

  2. # 2 楼答案

    您必须更改文件中的新行分隔符。在linux中,有一个名为dos2unix的实用程序,它将现有文件的新行分隔符从dos/windows转换为linux/unix

  3. # 4 楼答案

    如果java文件在linux机器上运行,println将使用linux标准“\n” 如果您想让它一直使用\r\n而不更改系统属性,只需更换 println(“文本”)和print(“文本\r\n”)。或者创建一个自定义函数printWindowsLine来实现这一点