什么可以使Java应用程序平台依赖?

问题描述

我正在开发一个应用程序,不知道是什么导致该应用程序依赖于平台。例如,在应用程序中使用Windows路径使其成为仅在Windows中运行的应用程序。

解决方法

有很多东西可以带你到那里:

  • 使用JNI对操作系统特定功能进行本地调用(例如:将值读取/写入Windows注册表)
  • 依靠图书馆……确实会为您进行此类本地调用

同一版本的更微妙的版本,尤其是在GUI编程的情况下:

  • 依靠特定(非标准)字体
  • 依赖于特定于操作系统的plafs

您在问题中所写的内容:

  • 仅在特定于平台的方式下起作用的“外部”标识符,例如:文件路径

这里是个好消息:所有这些都是明确的。您必须以某种方式编写您的代码以变得依赖于平台。

要困难得多,但幸运的是,不那么常见:编写有效的Java代码...最后,它依赖于底层JVM的特定实现细节。例如,线程被映射到操作系统提供的线程。因此,从理论上讲,有机会编写在不同平台上表现不同的Java代码。

还要注意,在当今的商业环境中,实际上存在着各种不同的JVM实现。再次可能在运行时导致不同的行为。

长话短说:不要太担心。当您遵循标准的最佳实践(例如:避免使用完全硬编码的绝对路径名)时,您的“中型”项目应该不会出现平台问题。但是,一旦您谈论的是大型,复杂的应用程序,事情就会以许多微妙的方式有所不同。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...