0

I'd need a way to check if the Linux Screen package is installed but through Java code. I would like to know if there's a built-in function for that? Also, the solution must be compatible with all major Linux distros & MacOS. Any ideas?

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
OpenSource
  • 15
  • 4
  • Have you thought of running [`which`/`whereis`/`locate`](https://askubuntu.com/questions/799776/what-is-the-difference-between-locate-whereis-which) in a [Process](https://stackoverflow.com/questions/3774432/starting-a-process-in-java)? – mbx Jun 11 '20 at 12:27

1 Answers1

2

use the exit value of the command using which screen in terminal if you issue the command

which screen 
echo Exitcode:$? 

you get

/usr/bin/screen
Exitcode:0

also for a non existent command,

which screeeennn
echo Exitcode:$?

you get

screeeennn not found
Exitcode:1

Applying the same logic in the java class

        public class ScreenTest {
            public static void main(String args[]) {
                int exitValue;

                try {
                    Process p = Runtime.getRuntime().exec("which screen");
                    exitValue = p.waitFor();
                    if (exitValue > 0) {
                        // not installed mostly value will be 1
                    } else {
                        //screen present value will be zero
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (InterruptedException e) {

                    e.printStackTrace();
                }
            }
        }
Noushad
  • 384
  • 3
  • 11