Unica Instancia de Programa - JAVA

Más
4 años 2 meses antes - 4 años 2 meses antes #328 por Tetradotoxina
Unica Instancia de Programa - JAVA Publicado por Tetradotoxina
Hola a todos, les dejo un pequeño codigo que he hecho para impedir que una aplicación se ejecute mas de una vez. De modo que cuando el usuario quiera ejecutar mas de una vez la aplicación que hemos desarrollado, NO PODRÁ HACERLO.

Clases que se ocupan:
# File
# RandomAccessFile
# FileLock

Sin mas demoras, les paso el codigo.
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileLock;

public class SinglentonApp {

    public static void main(String[] args){
        if (lockInstance("file.lock")) {             // nombre del archivo a bloquear
                new NuestraClaseMain(args);   // Clase que arranca el programa
            }
        }
    }

    public static boolean lockInstance(final String lockFile) {
        try {
            final File file = new File(lockFile);
            final RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
            final FileLock fileLock = randomAccessFile.getChannel().tryLock();    // intenta bloquear el archivo
            if (fileLock != null) {          // si lo bloqueo
                Runtime.getRuntime().addShutdownHook(new Thread() {
                    @Override
                    public void run() {
                        try {
                            fileLock.release();                // Libera el bloqueo
                            randomAccessFile.close();   // Cierra el stream
                            file.deleteOnExit();               // Borra el archivo cuando se cierra el programa
                        } catch (IOException e) {
                            System.err.println(e);
                        }
                    }
                });
                return true;
            }
        } catch (IOException e) {
            System.err.println(e);
        }
        return false;
    }
}
Fuente: darkilopezArgentina



Puedes realizar tus pedidos o seguirnos en nuestro Facebook Oficial
https://www.facebook.com/pages/Tetradotoxina/308337975890511

Síguenos en Twitter - @Tetradotoxina
https://twitter.com/Tetradotoxina


Para los amantes de la INFORMÁTICA (Programación, Base de Datos, Cursos, Manuales, y mas...)
https://www.facebook.com/TetradotoxinaDevelopers

Grupo de discusión
https://www.facebook.com/groups/TetradotoxinaCode/
Última Edición: 4 años 2 meses antes por Tetradotoxina.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Tiempo de carga de la página: 0.120 segundos

Donativos

Estadísticas

  • Total de Usuarios:3165
  • Último Miembro:Payne
  • Total de Menajes:606
  • Total de Temas:518
  • Total de Secciones:5
  • Total de Categorías:78
  • Abiertos hoy:0
  • Abiertos Ayer:0
  • Respuestas de Hoy:0
  • Respuestas de Ayer:0

Fan Page Oficial

Referidos

Últimos Temas

  • No hay mensajes para mostrar.
© 2017 Tetradotoxina. All Rights Reserved. Designed By JoomLead