我一直在使用java很长一段时间但最近这个问题出现在我的脑海里,从那以后一直困扰着我。
我知道平台不可知论可能会在java世界中受到影响的一些条件。
还有更多java平台不可知论可能会失败的情况吗? 假设我在Solaris上编译的文件可能无法在RedHat Linux上运行。
对此主题的任何帮助表示赞赏。
答案 0 :(得分:2)
平台特定方法,例如
答案 1 :(得分:1)
你需要小心路径,例如在Windows和UNIX之间使用\和/会遇到麻烦。另外,换行可能很棘手:Windows是CR + LF,UNIX只是CR(如果我没记错的话)。 Java确实提供了处理此类问题的机制,但天真/新开发人员可能会错过它们。
另外,我认为OS文件锁定是不同的,例如在Windows上,您可能会被阻止/拒绝访问UNIX上您不会访问的内容。
答案 2 :(得分:0)
某些不依赖于平台的库使用JVM默认值。例如,如果您在两台计算机上请求 AES ,JVM可能会选择不同的加密算法。在这种情况下,您在选择算法时应该更具体,例如 AES / ECB / PKCS5Padding 。请参阅Java default Crypto/AES behavior。
一般来说,当文档说有一些默认并且不使用默认值时要小心。