2017-08-09 137 views
0

您好我想用Spring批處理在Java中運行批處理流程,我需要將batchContext.xml像參數傳遞給我的主,但我不知道它是如何做到的,這是我啓動:運行帶參數的批處理

public final class Launcher { 

private static final String LOG_DECORATOR = "****************************************."; 
private static final Logger LOG = Logger.getLogger("batch"); 
private static final Long MIL = 1000L; 

private Launcher(){ 
    throw new UnsupportedOperationException(); 
} 

public static void main(String[] args){ 

    LOG.info(LOG_DECORATOR); 
    LOG.info(" INICIO DEL PROCESO "); 
    LOG.info(LOG_DECORATOR); 

    LOG.info("Cargando datos de configuracion"); 

    for(Object object: args){ 
     System.out.println(object); 
    }  

    final ApplicationContext applicationContext = new ClassPathXmlApplicationContext(args[0]); 

    final PropertyFacade property = applicationContext.getBean(PropertyFacade.class); 
    Assert.notNull(property, "Datos de configuracion no cargados correctamente"); 
    final String entorno = property.property("entorno"); 
    LOG.info("Entorno: ".concat(entorno)); 
    System.setProperty("java.io.tmpdir", property.property("tempFiles")); 
    final JobLauncher jobLauncher = (JobLauncher) applicationContext.getBean("jobLauncher"); 
    final Job job = (Job) applicationContext.getBean("job"); 
    long tiempoComenzar; 
    long tiempoTerminar; 
    tiempoComenzar = System.currentTimeMillis(); 
    try { 
     final JobExecution execution = jobLauncher.run(job, new JobParameters()); 
     LOG.info("Job Status : " + execution.getStatus()); 
     LOG.info("Job completed"); 
    } catch (JobExecutionAlreadyRunningException e) { 
     LOG.info("Error Launcher: ".concat(e.toString())); 
     LOG.error("Exception Launcher",e); 
    } catch(IllegalArgumentException e){ 
     LOG.info("Error Launcher: ".concat(e.toString())); 
     LOG.error("Exception Launcher",e); 
    } catch(JobInstanceAlreadyCompleteException e){ 
     LOG.info("Error Launcher: ".concat(e.toString())); 
     LOG.error("Exception Launcher",e); 
    } catch(JobParametersInvalidException e){ 
     LOG.info("Error Launcher: ".concat(e.toString())); 
     LOG.error("Exception Launcher",e); 
    } catch(JobRestartException e){ 
     LOG.info("Error Launcher: ".concat(e.toString())); 
     LOG.error("Exception Launcher",e); 
    }finally { 
     ((ConfigurableApplicationContext) applicationContext).close(); 
     tiempoTerminar = System.currentTimeMillis(); 
     final long tiempoDedicado = (tiempoTerminar - tiempoComenzar)/MIL; 
     LOG.info(
       "Fin. Tiempo dedicado a la consulta: ".concat(String.valueOf(tiempoDedicado)).concat(" segundos.")); 
     LOG.info(LOG_DECORATOR); 
     LOG.info(" FIN DEL PROCESO "); 
     LOG.info(LOG_DECORATOR); 
    } 

} 

}

,這是我的工作區

click me

我知道這是在這個界面:

click me

但是什麼是正確的變量? 我感謝所有幫助

要訪問此菜單中,您可以: *右上運行作爲 *運行配置 發射 *點擊*參數

+0

您可以使用完整路徑嗎?這將是最簡單的。否則,您將需要使用jar所在的目錄中的相對路徑。 – user3673613

+0

爲什麼不使用Spring Boot? –

+0

我該怎麼做? – jaxonjma

回答

0

我知道了,在接口的默認路徑在我的情況是「SRC-RECURSOS」,(這是我的Java版本的名稱,因爲它是一個老項目,其他版本將的src/main/JAVA)

而且我可以把作爲參數:

「/batch/batchContext.xml 「就像帶引號

而且這個工作完美,感謝您抽出時間