Olá pessoal, sou novo em Java e to apanhando aqui desde cedo!
Bom, é o seguinte: tenho um arquivo .Jar que faz a assinatura de um documento XML. Abaixo parte do código de minha classe:
// imports
/*
* CLASSE SIGN_NEW
*/
public class SignNew {
public static void main(String[] args) throws Exception {
int i = 0;
//DECLARAÇÃO / INSTANCIAÇÃO DAS VARIÁVEIS
String input, certificado, cert_alias, cert_pass, cert_X509;
input = "C:/xml/alpa/NFE_gerada/invoice.xml";
certificado = "C:/xml/alpa/NFE_parametros/AlpaPetroleo.pfx";
cert_alias = "AlpaPetroleo";
cert_pass = "a1p2b3j4";
cert_X509 = "C:/xml/alpa/NFE_parametros/AlpaPetroleo.cer";
String providerName = System.getProperty("jsr105Provider", "org.jcp.XML.dsig.internal.dom.XMLDSigRI");
//INSTANCIAÇÃO DO DOCUMENT BUILDER FACTORY (DBF)
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder builder = dbf.newDocumentBuilder();
Document doc = builder.parse(new FileInputStream(input));
// NESTA PARTE MEU JAVA FAZ O PROCESSO DA ASSINATURA E FAZ O RETORNO
//SETA O ID NA VARIAVEL OUTPUT
String output = "C:/xml/alpa/NFE_assinada/"+ id+".xml" ;
// GERAR DOCUMENTO / FAZER OUTPUT EM DISCO
TransformerFactory tf = TransformerFactory.newInstance();
Transformer trans = tf.newTransformer();
trans.transform(new DOMSource(doc), new StreamResult (new FileOutputStream(output)));
}
}
No caso, minhas variaveis estão todas instanciadas, e quando executo meu meu Jar ele lê o arquivo input definido no java, faz o que tem que fazer, retorna o output, gravando o arquivo em disco! até aí tudo beleza!
o problema é que vou utilizar um arquivo batch (.bat) para chamar meu arquivo jar, e gostaria de passar a variavel “input”, pois a cada chamada neste arquivo, terei um nome de imput diferente, não podendo este ser fixo.
meu arquivo batch:
@echo on
java -jar “C:\xml\alpa\NFE_parametros\nfe.jar” “C:\xml\alpa\NFE_gerada\invoiceXYZ.xml”
onde o C:\xml\alpa\NFE_gerada\invoiceXYZ.xml é o arquivo de imput que quero passar para o .Jar
Minhas dúvidas:
-
Tenho que mudar algo no meu código para passar apenas a variavel “input”?
-
Ao fazer a chamada no batch, posso passar somente o input ou tenho que passar demais variaveis? Alguem poderia me dar um exemplo?
any help are welcome!
obrigado,
Rafael