我想知道使用Java做一些低级或操作系统(项目)是否有意义。我之所以要问的原因是因为我想扩展我的Java知识而且我正在做文件压缩器,批量文件重命名器等等。有没有我可以看到或玩的例子?或者我应该只使用C或C ++?
答案 0 :(得分:2)
文件压缩器,批量文件之类的东西 renamer等。
我不会认为“低级别或操作系统的东西”。
在我的书中,“低级或操作系统内容”意味着设备驱动程序之类的东西。对于这种情况,Java非常适合,因为它在VM中运行,并且根本无法访问OS API和硬件(除非您运行Java-based OS)。
对于您所命名的两个示例,Java可以很好地工作,但您也可以轻松遇到难以克服或无法克服的限制:Java的文件系统API决定了您可以做什么,如果这还不够,那么唯一的事情就是left是通过JNI或Runtime.exec()
调用本机(即C / C ++)代码。
答案 1 :(得分:2)
我想知道使用Java做一些低级或操作系统(项目)是否有意义。
一般来说,没有。低级别的东西要么由JVM(或操作系统)处理,要么在纯Java中无法做到。
但是,如果你真的对这类东西感兴趣,可以浏览JNode项目并查看所提供的各种学生项目。 JNode是一个完整的操作系统,可以在“裸机”PC上启动和运行,并且(几乎)完全用Java实现。
答案 2 :(得分:0)
低级操作系统的东西与Java没有多大关系; Java使用了很多抽象(因此使其更高级别)。但是,您可以使用Java语言和VM使用Java Native Access与较低级别的API进行交互。
“低级别”的问题是:什么是低级?你想执行汇编指令吗?然后是Java:完全独立于平台。在Java中使用更低级别的API意味着您将失去与平台的独立性(想想:操作系统或硬件)。
但是,您也可以了解有关Java bytecodes的更多信息:这也是相当低的水平。
如果您提供有关项目的更多信息,我可以给您一个更具体的答案。