概述
有几种方法可以做到这一点。
首先,以“OS级别”运行的代码不需要与操作系统相同的语言编写。它只需要能够与OS代码链接在一起。几乎所有的语言都可以与C进行互操作,这真的是所有需要的。
所以在语言方面,技术上没有问题。 Java函数可以调用C函数,C函数可以调用Java函数。如果操作系统不是用C编写的(就是说,为了C语言编写的参数,OS C代码可以调用一些中间的C代码,它们转发到你的Java,反之亦然。 C几乎是编程的通用语言。
一旦程序被编译(本地代码),它的源语言就不再相关了。无论编译之前编写源代码是哪种语言,汇编程序看起来都是一样的。只要您使用与操作系统相同的调用约定,这没有问题。
更大的问题是运行时支持。 OS中没有很多软件服务可用。通常没有Java虚拟机,例如。 (没有理由在技术上不能,但通常,但通常,它是安全的,假设它不存在)。
不幸的是,在其“默认”表示中,作为Java字节码,Java程序需要大量的基础设施。它需要Java VM来解释和JIT字节码,它需要类库等等。
但有两种方法:
>在内核中支持Java。这将是一个不寻常的一步,但可以做到。
>或者将Java源代码编译成本机格式。 Java程序不必编译为Java字节码。您可以将其编译为x86汇编程序。同样适用于您使用的任何类库。那些也可以编译成汇编程序。当然,Java类库的一部分需要一些不可用的操作系统功能,但是可以避免使用这些类。
所以是的,可以做到。但是这并不简单,你不知道你会获得什么。
当然另一个问题可能是Java不会让你访问任意的内存位置,这会使很多硬件通信很棘手。但是也可以通过调用非常简单的C函数来简单地返回相关的内存区域作为Java的数组。
最后
以上就是积极雨为你收集整理的java如何调用驱动程序_可以用Java编写设备驱动程序吗?的全部内容,希望文章能够帮你解决java如何调用驱动程序_可以用Java编写设备驱动程序吗?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复