C'è un programma esterno che crea un file XML, ma potrebbe volerci un po 'di tempo per essere creato. Ho bisogno del mio programma Java per aspettare che il file esista prima di andare avanti.Come posso aspettare che un file esista prima di continuare
ho letto un po 'di blocchi sincronizzati, e ho letto che posso fare qualcosa di simile:
synchronized(this) {
while (!file.exists) { this.wait(); }
}
Ad essere onesti non so molto sulle attività sincronizzate in modo da Mi chiedo se sono sulla strada giusta, o se sono lontano.
Dare un po 'di attesa (lungo timeout); in modo che dopo lo stesso thread temporale dovrebbe svegliarsi. – Prashant
No. Questo non è affatto il modo in cui funziona, dimentica 'sincronizzato'. Puoi 1) aspettare che il programma finisca, o scrivere qualcosa dal programma allo stdout quando il programma scrive il file; oppure 2) utilizzare un [WatchService'] (http://stackoverflow.com/q/16251273/2071828) per tenere traccia delle modifiche alle directory. –
In primo luogo, 'sincronizzato' è correlato ai programmi multithread. In secondo luogo, il programma esterno è in esecuzione indipendente dal tuo programma java o il tuo programma java lancia questo programma esterno? –