Sou DBA e nao conheco muito de Java, estou precisando de ajuda para receber 2 parametros externos em uma classe, segue a classe:
Preciso passar para a classe o nome do arquivo e a data que sera utilizada abaixo.
packagedatemodify;importjava.io.File;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassChangeFileLastModified{publicstaticvoidmain(String[]args){try{Filefile=newFile("C:\\logfile.log");// PRIMEIRO PARAMETRO EXTERNO //print the original last modified dateSimpleDateFormatsdf=newSimpleDateFormat("dd/MM/yyyy HH:mm:ss");System.out.println("Original Last Modified Date : "+sdf.format(file.lastModified()));//set this date StringnewLastModified="01/01/2014 23:00:00";// SEGUNDO PARAMETRO EXTERNO//need convert the above date to milliseconds in long value DatenewDate=sdf.parse(newLastModified);file.setLastModified(newDate.getTime());//print the latest last modified dateSystem.out.println("Lastest Last Modified Date : "+sdf.format(file.lastModified()));}catch(ParseExceptione){e.printStackTrace();}}}
Pelo o que entendi, seria necessario declarar as variaveis e substituir conforme abaixo:
Filefile=newFile(VARIAVEL1);// PRIMEIRO PARAMETRO EXTERNO
StringnewLastModified=VARIAVEL2;// SEGUNDO PARAMETRO EXTERNO
Realizei varios testes e nao consegui finalizar essa classe vou ler mais sobre o assunto. Se tiver alguma dica de como fazer seria muito util.
Grato pelo sua atencao.
At.
adriano_si
Bom… Então veja bem…
Se é assim, o que seu professor quer é que você tire essa lógica de dentro do método main. Como lhe disse, o método main é a porta de entrada deo seu Software de forma que você não deve (não estou nem certo se pode, acho que sim) chamá-lo explicitamente de nenhum canto da aplicação.
Logo, se você vai receber ambas as variáveis por parâmetros, escreva um método que receba essas variáveis e mude sua lógica pra dentro desse método. Para testes, você pode passar fixo no método main a chamada desse método, mas o ideal é que venha de uma GUI.
Por hora, faça o seguinte:
publicstaticvoidmain(String[]args){recebeFileExibeData("C:\logfile.log","01/01/2014 23:00:00");}publicstaticvoidrecebeFileExibeData(StringfilePath,StringlastModification){try{Filefile=newFile(filePath);// PRIMEIRO PARAMETRO EXTERNO //print the original last modified date SimpleDateFormatsdf=newSimpleDateFormat("dd/MM/yyyy HH:mm:ss");System.out.println("Original Last Modified Date : "+sdf.format(file.lastModified()));//need convert the above date to milliseconds in long value DatenewDate=sdf.parse(lastModification);// SEGUNDO PARAMETRO EXTERNO file.setLastModified(newDate.getTime());//print the latest last modified date System.out.println("Lastest Last Modified Date : "+sdf.format(file.lastModified()));}catch(ParseExceptione){e.printStackTrace();}}
Era isso?
Abs e bons estudos
igor_ks
Para pegar o valor de um String array seria assim, por exemplo
A partir dessa chamada do programa java, com 2 parametros (essa chamada é feita pelo prompt de comando) java ChangeFileLastModified “C:\logfile.log” “01/01/2014 23:00:00”
Só tome cuidado com ArrayIndexOutOfBounds, caso tente pegar um valor do array que nao existe. Exemplo: caso vc passe 1 parametro só na sua chamada do programa, o erro ocorrerá ao tentar acessar o args[1] (na posição 1)