我对其中的一些概念很陌生,所以我希望你们对我这么做很容易。
我想在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");
}
}
答案 0 :(得分:4)
首先,init.d在系统启动时运行。系统启动不是在您登录桌面时,而是在操作系统到达启动过程中的某个点时。 init.d通常用于运行后台进程和服务。
另外,当你输入init.d时必须是可执行的。 .class文件不可执行。您必须使用java命令(例如java HelloWorld
)运行.class文件。如果你希望它在此时运行,你需要制作一个bash脚本来启动它。
(这些不是批评,只是尝试和理解架构如何运作的事情。当我开始时,我也不理解它们。)
但是,由于您希望在用户登录时运行,因此需要使用其他方法。根据你拥有的Ubuntu的味道,你需要做一些与众不同的事情。如果它是默认版本和最新版本,那么您需要弄清楚 Unity 如何在用户登录时运行。如果它是 Gnome 或 KDE 风格,您需要找出用户登录时运行的各个桌面环境。
我假设你有Unity,看看我是否能找到一个很好的简单指南来设置一个'程序' (再次,您需要创建一个运行java
命令的小文件)才能在用户登录时运行。
修改强>
This guide似乎在如何设置程序在登录时运行方面相当全面。您希望在“命令”中输入bash脚本的完整路径。框。