Boa noite!!!
Sou novo aqui e não conheço a fundo programação fiz curso Java Oo dua vezes e não peguei nada pois estes cursos passam bem rapido e não consegui absorver tudo e muito rapido e não é para iniciantes como eu do zero.E por falta de tempo para praticar e estudar, então…Sou analista de sistema e trabalho com um programa que necessida de fazer o registro de varias dlls, para o funcionamento dele então criei um BAT muito bom e funcional. Mas agora estou querendo criar uma interface em java para execução.
Procurei por varios exemplos e nenhum exemplo claro de como devo começar meu codigo. Preiciso de codigo simples para registrar varias dlls de uma pasta.
No bat faço assim
FOR %%f in (c:\Sistema\menu*.dll)do call %windir%\System32\regsvr32 %%f /s
Este codigo acima no bat registrar todas as dll dentro desta pasta com exito
E utilizo este para mesclar arquivos.
for %%f in (c:\Sistema\menu*.reg) do call %windir%\System32\REG IMPORT %%f
Então estou tentando no java, mas não sei como faço, na verdade a unica coisa que fiz foi criar o projeto/pacote/ e uma classe registrar rsss.
preciso de dicas de como montar este codigo para regitrar as dlls e importar os registros
Podes executar esses comandos do Windows utilizando o método exec da classe Runtime.
import java.io.File;
import java.io.FileFilter;
public class Exemplo {
public static void main(String[] args) {
try {
Exemplo programa = new Exemplo();
programa.executar();
} catch (Throwable t) {
t.printStackTrace();
}
}
private final File pastaSistema;
private final File pastaSystem32;
private final FileFilter arquivosMenuDll;
private final FileFilter arquivosMenuReg;
public Exemplo() {
pastaSistema = new File("C:\\Sistema");
pastaSystem32 = new File(System.getenv("windir"), "System32");
arquivosMenuDll = new FileFilter() {
@Override
public boolean accept(File arquivo) {
String nome = arquivo.getName();
return nome.startsWith("menu") && nome.endsWith(".dll");
}
};
arquivosMenuReg = new FileFilter() {
@Override
public boolean accept(File arquivo) {
String nome = arquivo.getName();
return nome.startsWith("menu") && nome.endsWith(".reg");
}
};
}
public void executar() {
File[] dlls = pastaSistema.listFiles(arquivosMenuDll);
for (File dll : dlls) {
executarLinhaDeComando(pastaSystem32, "regsvr32", dll.getAbsolutePath(), "/s");
}
File[] regs = pastaSistema.listFiles(arquivosMenuReg);
for (File reg : regs) {
executarLinhaDeComando(pastaSystem32, "REG", "IMPORT", reg.getAbsolutePath());
}
}
private void executarLinhaDeComando(File pasta, String... linhaDeComando) {
try {
Runtime ambienteExecucao = Runtime.getRuntime();
Process processo = ambienteExecucao.exec(linhaDeComando, null, pasta);
processo.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Grato, vou testar estava revendo conceitos java. Mas nada na minha mente, vou testar e te dou retorno. Obrigado.