0

我对其中一些概念很陌生,所以我希望你们对我放轻松。

我想在 Ubuntu 启动时运行一个程序,我称之为 Message.java。我做了一些研究,并认为我可以将 Message.Class(有人告诉我先将 .java 编译成一个类)移动到/etc/init.d. 然后我使用了这些命令:

sudo mv Message.class /etc/init.d/
sudo chmod +x /etc/init.d/Message.class 
sudo update-rc.d Message.class defaults

我想要的是在启动时显示一个带有“Hello World”的简单消息对话框。到目前为止,什么都没有发生。有人可以告诉我我做错了什么吗?我什至有正确的想法吗?(我只是离开其他帖子)。如果我完全错了,有人可以指出一个好的教程吗?这是代码以防万一:

public class Message {

    public static void main(String[] args) {
        // TODO Auto-generated method stub  
        Component frame = null;
        //default title and icon
        JOptionPane.showMessageDialog(frame,
            "Hello World"); 
        }
}
4

1 回答 1

4

首先,init.d 在系统启动时运行。系统启动不是在您登录桌面时,而是在操作系统在启动过程中达到某个点时。init.d 通常用于运行后台进程和服务。

此外,当您放入 init.d 时,它必须是可执行的。.class 文件不可执行。您必须使用 java 命令(例如。java HelloWorld)运行 .class 文件。如果您希望它在此时运行,则需要制作一个 bash 脚本来启动它。

(这些不是批评,只是尝试理解架构如何工作的东西。我开始时也不理解它们。)

但是,由于您希望它在用户登录时运行,您需要使用另一种方法。根据您拥有的 Ubuntu 风格,您需要做一些不同的事情。如果它是默认版本和最新版本,那么您需要弄清楚Unity在用户登录时如何运行。如果它是GnomeKDE风格,您将需要找出用户登录时这些各自的桌面环境运行的东西。

我假设你有 Unity,看看我是否能找到一个很好的简单指南来设置一个“程序”(同样你需要制作一个运行你的java命令的小文件)以在用户登录时运行。

编辑:

本指南似乎相当全面地介绍了如何设置程序以在登录时运行。您需要将 bash 脚本的完整路径放在“命令”框中。

于 2013-06-11T19:42:32.917 回答