为什么我的Java应用程序在Linux而不是Windows上运行不正确?

为什么我的Java应用程序在Linux而不是Windows上运行不正确?,java,linux,windows,Java,Linux,Windows,这是一个模糊的问题,但现在我们开始: 我有一个Java应用程序,它在Windows上的性能应该是100%,但是,当上传到运行Linux的服务器上时,该应用程序仍然运行,只是运行不正确。我知道这不是文件路径或文件名,但windows和linux之间的一些关键区别是什么,可能导致应用程序在其中一个上乱作一团 我不想直接回答我的问题(因此不发布代码或应用程序正在做什么),我只是对可能导致类似问题的原因更感兴趣,而且在任何地方都找不到列表 任何意见都将不胜感激 不匹配的文件路径(即,C:\\Users\

这是一个模糊的问题,但现在我们开始:

我有一个Java应用程序,它在Windows上的性能应该是100%,但是,当上传到运行Linux的服务器上时,该应用程序仍然运行,只是运行不正确。我知道这不是文件路径或文件名,但windows和linux之间的一些关键区别是什么,可能导致应用程序在其中一个上乱作一团

我不想直接回答我的问题(因此不发布代码或应用程序正在做什么),我只是对可能导致类似问题的原因更感兴趣,而且在任何地方都找不到列表

任何意见都将不胜感激

不匹配的文件路径(即,
C:\\Users\\
而不是
/tmp
)。文件分隔符的差异通常会破坏硬编码而不是动态加载的程序

此外,任何使用
exec()
运行的命令都将不同


你的帖子说“我知道这不是文件路径或文件名”,但没有任何代码或示例,这几乎是关键错误。Java被设计成独立于平台的,绝大多数代码不受操作系统的影响,因为JVM将为该机器生成适当的字节码。

如果你至少不知道你的应用程序在做什么,所说的一切都只是猜测。此外,你甚至不知道它是如何失败的。我知道你想要一份潜在差异的清单,但我仍然认为你的问题中的一些细节将帮助你得到一份更好的清单和更好的答案。就目前而言,没有细节,我没有任何东西可以促使我的大脑思考这些差异。UDP扫描。Windows没有对ICMP设置速率限制(确切地说是端口无法访问的消息)。Linux确实如此。我把球打起来了吗总而言之,Java是“一次编写—在任何地方运行”。系统之间的行为不应该有所不同,除非操作系统接口有所不同。线程:Thread.sleep()在windows(~16ms)上的粒度比linux低。嗯,我没有想到exec()。我会调查的。谢谢你的意见。