Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java如何像C一样写/读硬件端口?(outb、inb等)_Java_Hardware Port - Fatal编程技术网

Java如何像C一样写/读硬件端口?(outb、inb等)

Java如何像C一样写/读硬件端口?(outb、inb等),java,hardware-port,Java,Hardware Port,我有一个C应用程序。此应用程序写入和读取一些I/O端口地址 我认为Java不能以本机方式访问低级I/O地址。我说得对吗 这里是一个C++应用程序的例子: #include <malloc.h> #include <stdlib.h> #include <stdio.h> #include <iostream> #include <sys/io.h> int main(int argc, char *argv[]) { cout

我有一个C应用程序。此应用程序写入和读取一些I/O端口地址

我认为Java不能以本机方式访问低级I/O地址。我说得对吗

这里是一个C++应用程序的例子:

#include <malloc.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <sys/io.h>

int main(int argc, char *argv[])
{
    cout << "Refresh watchdog program" << endl;

    outb(0x87,0x2E);     //Extended Function Mode
    outb(0x30,0x2E);     //Set Watch Dog Timer Activate
    outb(0x01,0x2F);
    int reg = inb(0x2f);
    outb(reg|0x08, 0x2f);

}
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{

cout我认为sun.misc.Unsafe可能会对您有所帮助。它有类似于
void putAddress(长地址,长值)
的方法,可以满足您的需要。老实说,我没有做过这方面的工作,但您可以从

可以在上找到一个小样本程序


我认为sun.misc.Unsafe可能会对您有所帮助。它有类似于
void putAddress(长地址,长值)
的方法,可以满足您的需要。老实说,我没有做过这方面的工作,但您可以从

可以在上找到一个小样本程序


写一些JNI来为您做这件事我不确定这是否完全相关,但请看链接您也可以通过
sun.misc.Unsafe
来完成这件事,但我没有给出建议。我认为人们谈论不安全是正确的,尽管它被称为“不安全”出于某种原因,设计上没有记录。你想实现什么?通常有一种更好的方法来实现这一点。这不是内存访问。这是I/O端口访问,I/O端口与内存不同。即使使用sun.misc.Unsafe,你也无法访问它们,我不知道你可以在外部访问它们您需要使用JNI或找到一个预先存在的库(使用JNI)。(编辑:这取决于体系结构。x86处理器有一个单独的I/O端口概念,但这可能不是一个)写一些JNI为你做这件事我不确定这是否完全相关,但请看链接你也可以通过
sun.misc.Unsafe
完成这件事,但我没有建议。我认为人们谈论不安全是正确的,尽管它被称为“不安全”出于某种原因,设计上没有记录。你想实现什么?通常有一种更好的方法来实现这一点。这不是内存访问。这是I/O端口访问,I/O端口与内存不同。即使使用sun.misc.Unsafe,你也无法访问它们,我不知道你可以在外部访问它们您需要使用JNI或找到一个预先存在的库(使用JNI)。(编辑:这取决于体系结构。x86处理器有一个单独的I/O端口概念,但这可能不是一个)这是一种完全不同的I/O类型。
不安全的
不能进行内存访问。这是一种完全不同的I/O类型。
不安全的
不能进行内存访问。