1

I need to run another java app under Debian system but I need to run it under another user. The main java app is running under root. Now I am using this to start another java app but I need to run all this as another user, is it somehow possible ?

        ProcessBuilder processBuilder = new ProcessBuilder(new String[]{"java", "-Xms256M", "-Xmx" +    DataManager.getMaxMemory(server) + "M", "-XX:MaxPermSize=256M", "-jar", "/home/apps/jar/" + DataManager.getJar(server), "nogui"});
        File folder = new File("/home/apps/servers/" + server + "/");
        processBuilder.directory(folder);
        Process p = processBuilder.start();

Thanks.

Welite
  • 161
  • 4
  • 17
  • possible duplicate of [Running UNIX commands as different user, from Java](http://stackoverflow.com/questions/1012792/running-unix-commands-as-different-user-from-java) – Kenster Dec 19 '14 at 22:40
  • I would like to solve it without using 3rd party programs. – Welite Dec 20 '14 at 00:19
  • @Welite were u able to do it without using 3rd party programs? – HyperioN Jul 12 '17 at 05:59

1 Answers1

-1

Solved:

ProcessBuilder processBuilder = new ProcessBuilder(new String[] { "su", "-
s", "/bin/sh", "myuser", "-c", "java -jar myjar.jar" });,
Process p = processBuilder.start();

This code will start "myjar.jar" application under the user "myuser". You can confirm that using the unix command "top" and see the entered user process list.

Welite
  • 161
  • 4
  • 17