Linux 上的 Java 应用程序

标签 java linux linux-kernel

我是 LINUX 和 Java 编程新手。 我有一个服务器和客户端应用程序。 Sever是使用C#编程开发的,运行在windows机器上。目前我已经用java开发了在Linux机器上运行的客户端应用程序。但现在我需要客户端应用程序在 LINUX 操作系统启动时启动。 我不想使用任何 LINUX 现有操作系统,如 Ubuntu 或任何其他操作系统,我需要编译我的 Linux 内核并运行此客户端 Java 应用程序。 如果可能,我从哪里开始???

最佳答案

这取决于您的客户端代码正在做什么。如果它的要求非常低,那么您可以捆绑一个 Linux 内核(来自任何发行版)、一个引导加载程序、一个 JRE 和您的客户端代码。 JRE 和客户端代码应该进入文件系统,也许是初始 ram fs,这样您就不必担心磁盘文件系统。如果您从源代码编译内核,您甚至可以提供一个包含 initramfs 内容的目录,这样您就可以将其直接构建到内核中。然后,您可以将 JRE 调用作为 init= 参数插入到内核命令行上。同样,如果您从源代码编译内核,则可以在其中包含部分命令行。

上面假设您根本不需要用户态工具。对于大多数现代系统来说,这是一个越来越不合适的假设,因为用户级工具用于加载驱动程序、固件、设备配置以及系统启动和运行所需的数百万个其他作业。因此,您可能必须提供最小的用户空间。看看busybox了解实现这一目标的方法。许多嵌入式Linux设备选择这条路线。

如果您的客户端应该能够呈现图形用户界面,那么您还需要一个 X 服务器。您也可以从源代码进行编译,但是由于这里涉及所有不同的驱动程序以及所有不同的依赖项,我建议在此处构建现有的发行版。 debootstrap可以例如用于创建最小的 Debian 或 Ubuntu 安装,它可以用作进一步自定义的起点。这是我为 one of my own projects 选择的路线.

I don't want to use any LINUX existing OS like Ubuntu or any other and I need to compile my Linux Kernel

如果不使用全功能的 Linux 环境进行开发,我认为创建自定义 Linux 安装(采用上述形状之一)的可能性很小。如果您对多重引导设置感到不自在,您可以在虚拟化环境中运行 Linux 构建环境,例如使用qemuvirtualbox .

关于Linux 上的 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17649671/

相关文章:

java - Linux java,文件的最大磁盘空间大小

java - ODBC MS Access : syntax error in FROM clause

Python3 UnicodeDecodeError,无法读取 cp1251 编码的文件

linux - 包含 linux 内核配置的正确方法是什么?

c - 内核模块无法在某个语句之后执行语句

java - 生成并输出所有可能的组合,每个唯一项仅从三个 List<String> 一次

java - 测试 LITTLE_ENDIAN 和 BIG_ENDIAN 场景

linux -/root/.bash_profile : line 16: syntax error: unexpected end of file

linux - 挂载另一个虚拟硬盘总是属于root所有者,为什么?

android - Stock boot.img 重新打包后无法启动