Chamando outra Classe

18 respostas
snowblacksoul

Pessoal bom dia a todos, sei que existem vários topicos com o mesmo assunto, mas não conseguir achar a solução ainda, estou fazendo o processo novo aqui e gostaria da ajuda de vc´s. O que estou querendo através de uma classe java outra classe com o método main, como faço isso, segue os código para auxiliar, grato a todos que puderem colaborar

public class teste{

 public static void main(String[]args){

    try{
       
      GrSql tx = new GrSql();

       }catch(Exception e){
        JOptionPane.showMessageDialog(null,"Erro : "+e);
      }
    }
 }
import com.ncr.teradata.jdbc_4.ResultSet;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import javax.swing.JOptionPane;

public class GrSql{
    
    private static String Banco;
    private static String Banco_Ant;
    private static String Conta;
    private static String Conta_Ant;
    private static String Ciclo;
    private static String Sistema;
    private static String Dt_Corte_Ant;
    private static PrintWriter arquivo2;
    private static PrintWriter arquivo;
    private static String BancoName;
    private static String Dt_Corte_Atu;
    private static String Dt_Vcnto_Ant;
    private static String Dt_Vcnto_Atu;
    private static int msg;
    private static ResultSet rs;
    private static String SDS = "\\";
    
    public static void main(String[] args) {
        
    
    
    String textoQueSeraEscrito = "USE RGD_THIEGO\n EXEC Ps_BT_PLTA_ATIS_PQ_PLN @Banco='TERADATA_" + BancoName + ".dbo.',@Conta='" + Conta + "',@Ciclo='" + Ciclo + "',@Sistema='" + Sistema + "',@Dt_Corte_Ant='" + Dt_Corte_Ant + "',@Dt_Corte_Atu='" + Dt_Corte_Atu + "',@Dt_Vcnto_Ant='" + Dt_Vcnto_Ant + "',@Dt_Vcnto_Atu='" + Dt_Vcnto_Atu + "'\nGO";
            String log = "Processo : Ps_BT_PLTA_ATIS_PQ_PLN\nBanco Name : "
                    + "" + BancoName + "\nConta : " + Conta + "\nCiclo : " + Ciclo + "\nSistema : " + Sistema + "\n"
                    + "Dt_Corte_Ant : " + Dt_Corte_Ant + "\nDt_Corte_Atu : " + Dt_Corte_Atu + "\nDt_Vcnto_Ant : " + Dt_Vcnto_Ant
                    + "\nDt_Vcnto_Atu : " + Dt_Vcnto_Atu;

            try {
                arquivo = new PrintWriter(new BufferedWriter(new FileWriter("C:/CTL_MINUTOS_LOCAL/SQL/ps_BT_PLTA_ATIS_PQ_PLN.sql")));
                arquivo2 = new PrintWriter(new BufferedWriter(new FileWriter("C:/CTL_MINUTOS_LOCAL/BtPlano/ps_BT_PLTA_ATIS_PQ_PLN.txt")));
                arquivo.write(textoQueSeraEscrito);
                arquivo2.write(log);
                arquivo.close();
                arquivo2.close();
                
                 } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Erro : " + e);

            }
      }
}

18 Respostas

JoaoBluSCBR

Desculpem, postei um código que era para outro post.

igor_ks

O metodo main() é onde o programa inicia, portanto nao pode ter mais que um main()…

explique o que vc está querendo fazer, que podemos ajudar

snowblacksoul

Cara vc tem certeza que postou no lugar certo?!

snowblacksoul

quero executar a outra classe

inicio a classe teste

depois executo a classe GrSql
depois se quiser executar outra classe continuo chamando atraves da classe teste…

wagnerfrancisco

O que vc quer fazer é estranho, mas acredito que isso resolve teu problema:

public class teste{

 public static void main(String[]args){

    try{
       
      GrSql.main(null);

       }catch(Exception e){
        JOptionPane.showMessageDialog(null,"Erro : "+e);
      }
    }
 }

Aí vc executa a classe teste…

L

ñ entendi !!!meio estranho o que vc queres fazer…hein

igor_ks

mas pq o metodo da classe GrSql precisa se chamar main()?

snowblacksoul

Entao pessoal como assim estranho?!
Quero entender melhor porque nao posso fazer assim, qual o jeito certo de programar?!

porque assim eu quero que a classe teste, execute varias classes dentro do projeto
essas classes dentro dfo projeto vão ser igual a classe GrSql que vai gerar arquivos txt e sql
qual a melhor maneira de fazer isso!?

snowblacksoul

wagnerfrancisco era isso mesmo que eu queria, deu certo agora. Mas por favor me expliquem porque é estranho fazer dessa forma?! qual a forma correta!?

doravan

Na minha terra chamam isso de pogmorfismo.

wagnerfrancisco

snowblacksoul:
Entao pessoal como assim estranho?!
Quero entender melhor porque nao posso fazer assim, qual o jeito certo de programar?!

porque assim eu quero que a classe teste, execute varias classes dentro do projeto
essas classes dentro dfo projeto vão ser igual a classe GrSql que vai gerar arquivos txt e sql
qual a melhor maneira de fazer isso!?

O método main é o ponto de entrada da tua aplicação. Quando você rodar a aplicação é ele que vai ser executado inicialmente.

A classe “teste”, no teu caso, é o ponto de entrada. É ela que deve ser executada quando a aplicação inicia. Sendo assim, por que a classe “GrSql” também tem um método main? Não precisa, você pode dar um nome mais significativo pra este método. Por exemplo, ele poderia se chamar “escreveNoArquivo” ou algo assim (o teu método faz tanta coisa que fica difícil dar nome).

Mas já que você está interessado em programar melhor, eu sugiro que comece lendo um livro de Java. Tem várias coisas que você vai perceber que pode aprimorar. Por exemplo:

  • Padrão de nomenclatura das classes. A classe “teste” deveria se chamar “Teste” de acordo com o padrão.
  • Orientação a Objetos. No teu código tudo é estático, você está programando de maneira estruturada numa linguagem OO.
  • Tratamento de exceções e manipulação de arquivos. Teu código não garante que o arquivo será fechado se ocorrer uma exceção no bloco try. Além disso você pode ser mais específico ao capturar exceções e não capturar tudo que for Exception.

Enfim, lendo tu vai descobrir isso tudo.

Abraço.

snowblacksoul

wagnerfrancisco pô valeu grande, vou pesquisar mais sobre…
quanto ao camarada doravan acho que vc está enganado parceiro mas isso nao existe em java pelo menos nunca ouvir falar em “pogmorfismo.” e sim polimorfismo
se não quer ajudar blz

snowblacksoul

wagnerfrancisco, poderia me dar uma ajuda, pra fechar esse post, realmente estava fazendo errado
seguir seu conselho e está funcionando muito bem, porém preciso saber a melhor forma se o que estou fazendo é correto ou nao
sou novo em java.
vou colocar o codigo como estou fazendo, mas acho que nao preciso colocar vários try catch, pelo menos eu acho poderia me dar um help

package planomlocal;

import extrair.telefonica.com.br.Aut_PqContratado;
import extrair.telefonica.com.br.Aut_PqFaturado;
import extrair.telefonica.com.br.Aut_PqPlano;
import extrair.telefonica.com.br.Aut_PqServicos;
import extrair.telefonica.com.br.Aut_PqTerminais;
import javax.swing.JOptionPane;

/**
 *
 * @author Administrator
 */
public class PlanoMLocal {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        System.out.println("Executando Parque Faturado\n");
        try {
            Aut_PqFaturado pl = new Aut_PqFaturado();

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro : " + e);
        }

        System.out.println("Executando Parque Contratado\n");
        try {
            Aut_PqContratado pl = new Aut_PqContratado();

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro : " + e);
        }

        System.out.println("Executando Parque Terminais\n");
        try {
            Aut_PqTerminais ter = new Aut_PqTerminais();

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro : " + e);
        }

        System.out.println("Executando Parque Plano\n");
        try {
            Aut_PqPlano pl = new Aut_PqPlano();

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro : " + e);
        }

        System.out.println("Executando Parque Servicos\n");
        try {
            Aut_PqServicos pl = new Aut_PqServicos();

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro : " + e);
        }


    }
}
adriano_si

snow, não stressa cara, todo mundo fica meio perdido em Java no início, mas concordo com o amigo. Você está precisando entender melhor a sintaxe da Linguagem e alguns recursos como Tratamento de exceções.

Compre um livro de Java Básico e comece a ler e vá fazendo os exercícios do livro, isso vai lhe ajudar bastante.

Quanto às Exceptions que vocês está capturando realmente está desnecessário, da forma que está, bastaria 1 try catch e todos os métodos dentro dele…

Só que existem vários tipos de exceções que podem ocorrer em uma aplicação, 1 arquivo que não existe, a conexão com um Recurso externop que está fechada, o nome de 1 recurso errado como Banco de Dados, um formato de Número errado que o usuário digitou no campo de texto, etc…

Enfim, vários cenários de erro que podem ser tratados de forma diferente. Se você coloca tudo como Excption (mãe de todas as exceções) nunca terá como saber qual o erro específico que estourou na sua app…

O assunto é extenso.

Abs []

igor_ks

uma coisa que me chamou atenção foi o usuario snowblacksoul ter 360+ posts, ser usuário desde 2008 e criar 2 main

L

é as vezes isso se chama falta de conheçimento, estudo entre outros …

melhor coisa é abafar isso … 8)

snowblacksoul

adriano_si valeu mesmo pela dica , vou pesquisar mais!

Diguinho.Max

Bom acho que algumas pessoas deverian respeitar mais os usuarios do guj. “ninguém nasce sabendo!”

mais amigo como varios amigos disserão também numca vi isso em java!

esplique melhor para podermos entender.

Criado 26 de outubro de 2011
Ultima resposta 28 de out. de 2011
Respostas 18
Participantes 8