[RESOLVIDO]Criando atalho com o Java

7 respostas
W

Buenas galera!

o lance é o seguinte, necessito que ao ser executado meu .jar crie um atalho “dele mesmo” no inicializavel do windows.

a lógica ja esta pronta, só não sei como criar um atalho pelo java, se existe algum comando especifico.

tentei criar um atalho a mão e jogar dentro do meu projeto, mas toda vez que meu .jar copia o atalho para a pasta inicializar do windows, o atalho aparece mas sem nenhuma informação.

Grato.

7 Respostas

duduribeiro
public static void copyFile(File source, File destination) throws IOException {
        if (destination.exists())
            destination.delete();

        FileChannel sourceChannel = null;
        FileChannel destinationChannel = null;

        try {
            sourceChannel = new FileInputStream(source).getChannel();
            destinationChannel = new FileOutputStream(destination).getChannel();
            sourceChannel.transferTo(0, sourceChannel.size(),
                    destinationChannel);
        } finally {
            if (sourceChannel != null && sourceChannel.isOpen())
                sourceChannel.close();
            if (destinationChannel != null && destinationChannel.isOpen())
                destinationChannel.close();
       }
   }
ai para executar o metodo..vc passa como source o seu arquivo e como destination faz o seguinte:
String userName = System.getProperty("user.name");
windows xp:
caminhoPastaInicializar = "C:\Documents and Settings\" + userName + "\Menu Iniciar\Programas\Inicializar";
windows vista
caminhoPastaInicializar = "C:\users\" + userName + "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup";
otaviojava

Dá uma olhada nestes links:


Se não ajudar só falar.

leonardobhbr

Amigo como o java é multi-plataforma considero meio inviável fazer isso
a solução seria ou trabalhar com jni ou fazer na mão

M

bom dia so novo no forum…

seguinte, tenho uma classe em java qe gera um arquivo.etq pra imprimir etiquetas em uma impressora zebra conforme o codigo abaixo:

package fiasiniinformix;

import com.sun.org.apache.bcel.internal.util.Class2HTML;

import <a href="http://java.io">java.io</a>.<em>;

import java.sql.</em>;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

*
  • @author Fabio
    */
    public class Main {

/**

  • @param args the command line arguments
    */
    public static void main(String[] args) throws ParseException {
    // TODO code application logic here
    String etiqueta = “”;
    String cod_empresa = “”;
    String cnpj_cliente = “”;
    String nom_cliente = “”;
    String end_cliente = “”; //endereço do cliente
    String cod_cidade;
    String des_item;

Statement stmt;
ResultSet rs;

String url = (“jdbc:informix-sqli://192.168.0.242:1525ATABASE=logix;INFORMIXSERVER=prdfiasini;user=informix;password=informix”);

Connection conn = null;

System.out.println(url);

try {

Class.forName(com.informix.jdbc.IfxDriver);

}

catch (Exception e) {

System.out.println(e);

}
try {

conn = DriverManager.getConnection(url);

System.out.println("\nAqui conn: " + conn.toString());

} catch (SQLException e) {

System.out.println(“FAILED: failed to connect!”);

}

try {

System.out.println(“Connected …”);

DatabaseMetaData md = conn.getMetaData();

System.out.println("Driver name: " + md.getDriverName());

System.out.println("Driver version: " + md.getDriverVersion());

System.out.println("Database product name: "
  • md.getDatabaseProductName());
    System.out.println("Database product version: "
  • md.getDatabaseProductVersion());
stmt = conn.createStatement();

//rs = stmt.executeQuery(“select cod_empresa, num_ordem from ordens”);

rs = stmt.executeQuery( "select clientes.nom_cliente, "
  • "clientes.end_cliente, "
  • "cidades.den_cidade, "
  • "ordem_montag_lote.num_lote_om, "
  • "ordem_montag_mest.num_om, "
  • "item.den_item, "
  • "cores.den_cor, "
  • "ped_itens_grade.qtd_pecas_solic, "
  • "cidades.cod_uni_feder "
    /*ordem_montag_item.num_pedido,
    pedidos.cod_cliente,
    ped_itens.num_sequencia,
    ped_itens_grade.qtd_pecas_solic, */
  • "from ordem_montag_mest join ordem_montag_item on (ordem_montag_mest.cod_empresa = ordem_montag_item.cod_empresa and ordem_montag_mest.num_om = ordem_montag_item.num_om) "
  • "join ordem_montag_lote on (ordem_montag_lote.cod_empresa = ordem_montag_mest.cod_empresa and ordem_montag_lote.num_lote_om = ordem_montag_mest.num_lote_om) "
  • "join pedidos on (pedidos.cod_empresa = ordem_montag_item.cod_empresa and pedidos.num_pedido = ordem_montag_item.num_pedido) "
  • "join ped_itens on (pedidos.cod_empresa = ped_itens.cod_empresa and pedidos.num_pedido = ped_itens.num_pedido and ordem_montag_item.num_sequencia = ped_itens.num_sequencia) "
  • "join estrut_grade on (ped_itens.cod_item = estrut_grade.cod_item_pai and ped_itens.cod_empresa = estrut_grade.cod_empresa) "
  • "join ped_itens_grade on (ped_itens_grade.cod_empresa = ped_itens.cod_empresa "
  • "and ped_itens_grade.num_pedido = ped_itens.num_pedido "
  • "and ped_itens_grade.num_sequencia = ped_itens.num_sequencia "
  • "and ped_itens_grade.cod_grade_1 = estrut_grade.cod_grade_1) "
  • "join item on (estrut_grade.cod_empresa = item.cod_empresa and estrut_grade.cod_item_compon = item.cod_item) "
  • "join cores on (ped_itens_grade.cod_grade_1 = cores.cod_cor) "
  • "join clientes on (pedidos.cod_cliente = clientes.cod_cliente) "
  • "join cidades on (clientes.cod_cidade = cidades.cod_cidade) "
  • "where ordem_montag_lote.num_lote_om = 448 "
  • "order by ordem_montag_mest.num_om, item.den_item ");
while (rs.next()){

//cod_empresa = rs.getString(“empresa”);

//cnpj_cliente = rs.getString(“cliente”);

nom_cliente = rs.getString(nom_cliente);

end_cliente = rs.getString(end_cliente);

//cod_cidade = rs.getString(“cod_cidade”);

String cidade = rs.getString(den_cidade);

String num_lote_om = rs.getString(num_lote_om);

String num_om = rs.getString(num_om);

//String cod_item = rs.getString(“cod_item”);

String den_item = rs.getString(den_item);

String cor = rs.getString(den_cor);

float qtd_item = Float.parseFloat(rs.getString(qtd_pecas_solic));

String estado = rs.getString(cod_uni_feder);

int int_qtd_item = Float.floatToIntBits(qtd_item);

System.out.println(qtd_item);

/*

qtd_planej = Float.parseFloat(rs.getString(“qtd_planej”));

int_qtd_planej = Float.floatToIntBits(qtd_planej);

*

*/
//etiqueta += “^F030,55^XGR:LOGO,1,1^FS”;

//FO -> Margem esquerda

/*

SimpleDateFormat formatador = new SimpleDateFormat(yyyy-mm-dd);

Date data = formatador.parse(dat_entrega);
SimpleDateFormat novoFormatador = new SimpleDateFormat(dd/mm/yyyy);

dat_entrega = novoFormatador.format(data);

*

*/
for( int i = 0; i < qtd_item; i++ )

{

etiqueta += ^XA;

etiqueta += \n^FWR”;

etiqueta += \n ^FO660,40^A0,50,40^FDCliente: ^FS;

etiqueta += \n^FO650,170^A0,75,45^FD”+nom_cliente.trim()+"^FS";

etiqueta += \n^FO560,40^A0,50,40^FDEndereco: ^FS;

etiqueta += \n^FO550,200^A0,60,40^FD”+end_cliente.trim()+"^FS";

etiqueta += \n^FO460,40^A0,50,40^FDCidade: ^FS;

etiqueta += \n^FO450,170^A0,60,40^FD”+cidade.trim()+"^FS";

etiqueta += \n^FO360,40^A0,50,40^FDNum Lote: ^FS;

etiqueta += \n^FO350,210^A0,68,40^FD”+num_lote_om.trim()+"^FS";

etiqueta += \n^FO260,40^A0,50,40^FDNum OM: ^FS;

etiqueta += \n^FO255,200^A0,68,40^FD”+num_om.trim()+"^FS";

etiqueta += \n^FO160,40^A0,50,40^FDItem: ^FS;

etiqueta += \n^FO150,160^A0,68,40^FD”+den_item.trim()+"^FS";

//etiqueta += “\n^FO360,40^A0,50,30^FDProduto: ^FS”;

//etiqueta += “\n^FO350,140^A0,68,30^FD”+des_item.trim()+"^FS";

etiqueta += \n^FO70,40^A0,50,35^FDCor: ^FS;

etiqueta += \n^FO70,140^A0,60,35^FD”+cor.trim()+"^FS";

etiqueta += \n^FO460,510^A0,50,35^FDEstado: ^FS;

etiqueta += \n^FO450,630^A0,60,35^FD”+estado.trim()+"^FS";

//etiqueta += “\n^FO40,140^ABN,20,10^FD”+dat_entrega+"^FS";

//etiqueta += “\n^FO40,180,^B2,150,Y,N,N”;

//etiqueta += “\n^FO40,60^A0,25,20^FD”+des_item.trim()+"^FS";

//etiqueta += “\n^FO40,350^ABR,30,20^FD”+des_item.trim()+"^FS"; //ABN,30,20 -> 20 É O TAMANHO DA FONTE

//O “R” deve imprimir tarja preta com escrita branca

etiqueta += \n^XZ”;

}

GerarArquivo(etiqueta);

<a href="//System.out.println">//System.out.println</a>(cod_empresa);

<a href="//System.out.println">//System.out.println</a>(num_ordem);

} //fim while (rs.next())
} catch (SQLException e) {

<a href="//System.out.println">//System.out.println</a>(“FAILED: failed to connect!”);

System.out.println(e);

}

try {

conn.close();

} catch (SQLException e) {

System.out.println(“FAILED: failed to close the connection!”);

}

System.out.println(“Done!”);

}
public static String GerarArquivo( String textoEtiqueta ){

try{

File arquivo;
arquivo = new File("\\192.168.0.230\scanner\entrega448.etq");

FileOutputStream fos = new FileOutputStream(arquivo);

String texto = textoEtiqueta;

fos.write(texto.getBytes());

fos.close();

}

catch (Exception ee) {

ee.printStackTrace();

}

return ok;

}

}

preciso criai uma tela pra um usuario digitar o numero do lote qe esta nessa linha + "where ordem_montag_lote.num_lote_om = 448 ", mas nao estou conseguindo…

to tentando chamar uma classe por um botao, mas nao esta dando mto certo…
codigo do botao:

Main main = new Main();
main.GerarArquivo();

preciso pra alguma coisa como parametro nessa linha : main.GerarArquivo(parametroAqui);

mas nao sei o qe passar…

se puderem me ajudar seirei grato…

obrigado…

otaviojava

Dá uma olhada em Swing
Trabalha com interface gráfica no java.

W

duduribeiro

Consegui, ja tinha toda a logica que voce me passou, fiz para windows 7 e xp ( os que os clientes usam )

o meu problema era só no copiar o atalho de dentro do jar.

consegui com seu exemplo…

vlw!

duduribeiro

beleza…qlquer coisa deixa a duvida

Criado 24 de janeiro de 2011
Ultima resposta 24 de jan. de 2011
Respostas 7
Participantes 5