|
|
1
20
在实践中,大多数编译的字节码是独立于平台的,我在Java平台上开发12年的经验告诉我,从平台到平台仍然存在特质。 例如,在开发用于PC和MaCOSX的Java 1.4 Swing应用程序时,如果父帧为NULL,对话框的行为是不同的。
另一个例子可能是使用文件系统和文件。Java API有助于保护开发人员不受路径分隔符的差异的影响(方法)
所以,虽然我的座右铭是“写一次,到处跑”,但我的经验是,在生产环境中,它是写一次的。 测试 到处都是。 因此,拥有强大的单元和集成测试可以帮助实现这一点,因为您可以在想要分发软件的各种平台上执行这些测试。 尽管这里和那里都有一些小问题,但是在Linux、Unix、Windows和MacOSX(BSD-Unix)上使用相同的JAR运行代码还是很酷的。 |
|
|
2
14
正如Djacobson指出的,答案是合格的“是”。在大多数情况下,Java开发人员不必担心平台依赖性。但是,在处理处理处理传统操作系统和平台功能的API时,可能会遇到问题。
例如,在处理文件I/O时,通过忽略跨平台的文件/路径分隔符之间的差异(即使用
|
|
|
3
7
在大多数情况下,是的。因为Java编译到由它的虚拟机执行的字节码,所以它可以 通常地 无论系统位于虚拟机下,都应以相同的方式运行。 然而。即使是虚拟机也不能免疫 漏洞 . 例如,一个快速的谷歌搜索会显示以下内容: http://www.ibm.com/developerworks/java/library/j-diag0521.html 不同的JVM之间的行为差异可能有所不同。希望您最终不会得到依赖于这些情况的代码…但是仔细研究是值得的,以了解您的基础设施的局限性是什么。 |
|
|
4
5
你的问题不会执行你的代码,但更可能的是你必须对文件路径、可用的外部命令(如果你需要它们)、必要的文件权限以及不属于“Java”问题域的其他外部因素做出假设。除非您计划广泛使用本机代码(通过JNI),否则Java不会成为您的问题,您的环境将是。 这让我们回到了古老的格言:“写一次,到处测试”。 |
|
|
5
4
线程优先级是要考虑的一件事。例如,其他操作系统(如Solaris)的线程优先级比Windows高。因此,如果您大量工作于多线程,操作系统可能会影响程序的行为。 |
|
|
6
1
要关注的主要事情是UI代码,以确保它在您将要运行的所有平台上都被正确地表示。 另一个可能的问题来源是部署到不同的应用服务器。它们之间可能存在不兼容的问题。 除此之外,Java是独立于平台的,这也是它的弱点之一,因为您正在编码一个共同的分母,并且每个OS的许多特征不可用。 |
|
|
7
1
很少,而且应该很明显。像system.getproperty(“os.name”)一样,它显然依赖于操作系统,或者不起作用。最常见的是system.exec(),因为它调用系统上的另一个应用程序,同样,您应该知道您调用的应用程序在每个系统上是否工作相同(不太可能)。 |
|
|
8
0
除了上述问题,我遇到的主要问题实际上是在不同的平台上构建,这可能不是您所要求的,但可能是需要注意的。 当使用Java的Apple发行版时,OSX尤其犯了这个错误(为什么任何人都想推出自己的Java包装,我不知道,但这是一个独立的论点,在OSX上,我认为你别无选择,只能使用Java)。您可能依赖或不依赖的库位于完全不同的目录中,例如,如果我的内存正确地服务于我,库而不是lib。IBM JavaI认为在某些情况下在不同的容器中封装类。可笑!! 希望有帮助。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |