Iniciar o programa minimizado quado o pc ligar [Java] [Resolvido]

Ola, gostaria que a minha aplicação iniciasse minimizada no tray no boot do sistema, mais não sei como programar minha aplicaçao para reconhecer que esta sendo aberta pela primeira vez desde que o pc foi ligado.
Pra resolver esse problema eu pensei em criar um arquivo em uma pasta temporaria do windows, assim quando o programa fosse aberto ele criaria o arquivo nessa pasta e seria minimizado para a bandeja entao, na proxima vez que fosse aberto ele veria que o arquivo esta la e nao minimizaria mais, ai qd o pc fosse reiniciado ou desligado o arquivo seria apagado e a aplicaçao saberia que o pc foi reiniciado e ficaria assim. foi só uma ideia… enfim, alguem conhece um jeito de fazer isso ou uma pasta temporaria do windows onde eu possa criar meu arquivo?

e como faço pra min ha aplicaçao saber que é a primeira vez que esta sendo aberta desde o ultimo boot? pode dar algum exemplo? obg.

Realmente funciona bem porem quando eu abro pelo icone ou seja sem passar parametro algum ele me da o erro

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0

ainda não parei pra tentar formular uma soluçao, qualquer novidade eu aviso.

Entao, consegui uma solução aceitavel, quando inicio o programa pelo icone o vetor args tem length = 0. entao oque fiz foi:

   if(args.length==1){
        JOptionPane.showMessageDialog(null, "Minimizado");
    }

e ai quando eu abro pelo ícone nao acontece nada porem quando eu abro pelo cmd passando qqer argumento ele mostra a mensagem, nao sei se o vetor args muda de tamanho sem eu passar algum argumento pq se isso acontecer eu nao terei controle sobre minha aplicaçao.
Enfim, minha ideia agora é criar um outro jar que vai ser aberto no boot do sistema e ira inserir o codigo no cmd pra minha aplicaçao abrir minimizada, assim, quando a app estiver fechada e o usuario abrir pelo icone ele nao vai minimizar.

entao, viniciusafx consegui fazer funcionar aqui graças a suas dicas Mto Obrigado!
vou deixar as instruçoes aqui pra caso alguem tenha a mesma duvida que eu.

Pra dar certo eu fiz o seguinte:

na classe principal, no metodo main do meu app1 (app que quero que inicie minimizado no boot)
eu criei uma estrutura condicional onde, se se houver um argumento
o programa minimiza e depois criei um novo jar (app 2 para criado auxiliar)
que le o arquivo de de configuraçoes do app1 onde esta salvo a opçao do
usuario se o programa deve ou nao iniciar minimizado no boot do sistema
caso seja true o app 2 que deve ficar na mesma pasta do app1
inseri um comando no CMD do windows que obtem o local onde esta instalada
o app2 e o app1 e manda executar a app 1 passando o argumento 0 segue o
metodo main do app 2 (lembrando que meus apps sao convertidos em executaveis .exe no ExcelsiorJet por isso insiro .exe ao inves de .jar no codigo do cmd ):

  public static void main(String[] args) {
  // criando objeto da classe que contem as strings onde salvo os nomes de pastas e do app
 Strings String = new Strings();
            //obtendo local onde estao os apps
        String path = System.getProperty("user.dir");
         try {

          //lendo arquivo
        FileInputStream fis = new FileInputStream(arquivo de configuraçao do app1);
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);
        String Linha = br.readLine();

            //se minimizar é true executo o app 1 passando arg 0 
        if (Linha.equals("true")) {
            Runtime.getRuntime().exec(path + "\\" + Strings.NomeApp + ".exe 0");
          //se minimizar é false, apenas inicio o app 1
        } else {
            Runtime.getRuntime().exec(path + "\\" + Strings.NomeApp + ".exe");

        }

    } catch (Exception e) {
        //se der algum erro pra ler o arquivo apenas inicio o app 1 

        try {
            Runtime.getRuntime().exec(path + "\\" + Strings.NomeApp + ".exe");
        } catch (IOException ex) {

             //se nao conseguir inserir o codigo no cmd mostro um dialogo pro usuario
            JOptionPane.showMessageDialog(null, "Nao foi possivel inserir o codigo no CMD ");
        }

    }
}

Entao quando criei um instalador eu pus os dois apps na mesma pasta e mandei criar um atalho do app 1
na area de trabalho e um atalho do app 2 no startup assim quando o usuario executar o app1 pelo icone no desktop que leva ao app1 ele vai iniciar normalmente e no boot do sistema ele vai iniciar minimizado se o usuario quiser pois esse atalho leva ao app 2 que minimiza ou nao o app1 de acordo
coma vontade do usuario e ta funcionando 100%