Java é uma linguagem não script, então você precisa compilar o código.
Eu recomendo compilá-lo em um pacote jar e, em seguida, escrever um script de shell para iniciar o jar.
#!/bin/sh
java -jar <compiled jar>.jar
exit 0
Usando um programa Java, adicionei um arquivo .desktop
em /etc/xdg/autostart
para executar um script quando um usuário faz login. O script não foi executado no login do usuário e, quando eu verifiquei manualmente o diálogo de inicialização de aplicativos, não foi adicionado a ele.
O arquivo que eu adicionei é /etc/xdg/autostart/Startup.desktop
, e o script que eu quero rodar no login do usuário é /usr/bin/Startscript
. O código que escrevi para adicionar o arquivo da área de trabalho é o seguinte:
private void writeDesktopFile() {
File f = new File("/etc/xdg/autostart/Startup.desktop");
if (!(f.exists())) {
try {
f.createNewFile();
BufferedWriter bw = new BufferedWriter(new FileWriter(f, true));
bw.write("[Desktop Entry]");
bw.newLine();
bw.append("Name=Startup");
bw.newLine();
bw.append("Exec=Startscript");
bw.newLine();
bw.append("Type=Application");
bw.newLine();
bw.append("Terminal=false");
bw.newLine();
bw.append("Categories=GNOME;GTK;Utility;");
bw.newLine();
bw.append("X-Ubuntu-Gettext-Domain=Startscript");
bw.newLine();
bw.flush();
bw.close();
Runtime.getRuntime().exec("chmod +x /usr/bin/Startscript");
} catch (IOException ex) {
Logger.getLogger(LinuxStartup.class.getName())
.log(Level.SEVERE, null, ex);
}
}
Por que meu script não está sendo executado na inicialização?
Java é uma linguagem não script, então você precisa compilar o código.
Eu recomendo compilá-lo em um pacote jar e, em seguida, escrever um script de shell para iniciar o jar.
#!/bin/sh
java -jar <compiled jar>.jar
exit 0
Tags startup java gnome linux desktop-file