Se state costruendo un programma java che deve lanciare in background un eseguibile in Windows ecco il codice che potrebbe fare al caso vostro.

Per prima cosa dichiariamo le variabile all’interno del nostro codice

ProcessBuilder pbEseguibile = new ProcessBuilder();
Process pEseguibile = null;

Poi aggiungiamo il seguente codice per lanciare l’eseguibile in un processo

pbEseguibile.command( "c:\\test.exe" );
try {
    pEseguibile = pbEseguibile.start();
} catch (IOException ex) {
    Logger.getLogger(jtTest.class.getName()).log(Level.SEVERE, null, ex);
}

Se dobbiamo “uccidere” il processo basta che lanciamo il codice

if (pEseguibile != null) {
    pEseguibile.destroy();
}

 

Molte aziende (come quella dove lavoro ora) usano il sistema online BPIOL di Poste Italiane con la smartcard USB per gestire il proprio conto corrente postale.

Purtroppo sul sito viene usata un’applet java (per firmare le operazione) il cui contenuto e non è compatibile con l’attuale versione del Java 1.8.x

Per risolvere il problema, occorre installare la JRE 1.7.71 (e non le successive) preferibilmente x86 e autorizzare nella tab sicurezza (pannello di controllo -> java) l’indirizzo https://bancopostaimpresaonline.poste.it

Per togliere le notifiche di aggiornamento che richiederà Java basta aprire il nostro caro regedit, andare in HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy e modificare le voci (DWORD 32):

NotifyDownload
EnableJavaUpdate
EnableAutoUpdateCheck

con il valore a 0

Spero che Poste rilascia a breve una versione aggiornata dell’applet in modo da poterla eseguire con l’ultima release Java

Ecco il codice

package com.org.sascha.utility;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class loopHashMap {

 public static void main(String[] args) {

  //inizializzo la HashMap
  java.util.Map < Integer, String > map = new java.util.HashMap < > ();
  map.put(1, “Riga1”);
  map.put(2, “Riga2”);
  map.put(3, “Riga3”);

  for (Map.Entry < String, String > entry: map.entrySet()) {
   System.out.println(“Chiave: ”+entry.getKey() + ”Valore: ”+entry.getValue());
  }

 }

}

Ecco un esempio su come ottenere l’utlimo giorno del mese:

public static Date ottieniUltimoGiornoDelMese(Calendar cal) {
	cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
	cal.set(Calendar.HOUR, 23);
	cal.set(Calendar.MINUTE, 59);
	cal.set(Calendar.SECOND, 59);
	return cal.getTime();
}

Oppure una funzione che ho scritto pochi giorni fa:

public static int dataUltimoGiornoMese(int mese, int anno, boolean meseTogliUno) {
	Calendar cal = Calendar.getInstance();
	cal.set(anno, mese - (meseTogliUno ? 1 : 0), 1);
	return cal.getActualMaximum(Calendar.DAY_OF_MONTH);
}

MEMO: java conta i mesi partendo dallo 0, perciò Gennaio non è 1, ma 0 ! Per questo ho messo un boolean meseTogliUno !