Alguém sabe como chamar um programa java dentro de outro?
Estou com um problema… fiz um programa para inserir e pegar dados de um bd, e outro programa para mostrar indormações em vrml. No entanto preciso enviar as informações q peguei no primeiro programa e enviar para o vrml atrvés do segundo programa. Já tentei fazer em um só código, mas gera erro de conexão com o bando de dados… por isso pretendo fazer em programas separados e através do segundo programa enviar os dados do bd para o vrml… :roll:
public class testegrafico
{
public static void main (String args [])
{
int i;
float numero;
String comando;
try
{
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}
catch(ClassNotFoundException cnfe)
{
System.out.println(“Problemas com o Class.forName”);
System.exit(1);
}
try
{
Connection con = DriverManager.getConnection("jdbc:odbc:testegrafico");
Statement st = con.createStatement();
st.executeUpdate("delete from grafico");
for (i = 1; i <= 100; i++){
numero = (float) (Math.random()*100);
comando = "Insert Into grafico values (" + i + ", " + numero + ")";
st.executeUpdate(comando);
}
ResultSet rs = st.executeQuery("select * from grafico");
while (rs.next())
{
System.out.print(rs.getString("codigo")+ "-");
System.out.println(rs.getString("numero"));
}
st.close();
con.close();
}
catch(SQLException sqle)
{
System.out.println("Problemas com SQL");
System.err.println(sqle);
sqle.printStackTrace();
System.exit(1);
}
}
O que você faz na verdade é instanciar o objeto de uma classe entro de outra, e aí utilizar seus métodos a partir desse objeto criado.
No caso, como seu único método é static (o método main), nem precisaria fazer isso, basta um
testegrafico.main();
Mas o certo seria você criar vários métodos nessa sua classe, e aí fazer algo tipo:
testegrafico bd = new testegrafico();
bd.metodo();
Bom, e como eu faço a ligação entre os .java ?? Tudo, faço a instância da classe e chamo os métodos, mas como informo ao primeiro programa de onde é que ele vai buscar essa chamada de classe?
Se os arquivos estiverem no mesmo diretorio ( e, portanto, no mesmo pacote ), basta voce chamar os metodos, nao precisa se preocupar em informar onde esta a classe, pois o Java acha sozinho.
Se estiver em um package diferente, basta voce dar um “import” da determoinada classe e usar… ou seja, nada diferente do que estamos acostumados a fazer no dia-a-dia.
Pelo que parece, você está começando errado! Falta à você conhecer um pouco melhor Programação Orientada a Objetos (POO).
Uma vez você conhecendo melhor esses conceitos, será muito mais fácil à você conseguir implementar o que você pretende usando JAVA, C++, DELPHI ou qualquer outra linguagem OO.
Da maneira que você está indo, você até conseguirá resolver seus problemas, mas muito provavelmente estará seguindo por um caminho mais difícil e tortuoso, além de deixar de escrever código com qualidade.
Você pode iniciar os estudos de POO através do Javasoft (www.javasoft.com), eles tem um bom tutorial que ensina bem esses conceitos, mas caso você tenha dificuldade no inglês, procure no site Mundo OO (www.mundooo.com.br), que você encontrará bons materiais em português!
Bom … acho que resolvi o meu problema.
O que eu queria era o seguinte:
import Progama1;
Eu não sabia se isso funcionava. E, principalmente, parece que o Programa1 não pode ter o public static void main () … quando fiz o Programa1 apenas com funções, consegui fazer a declaração
é isso mesmo Petchula…acredito que quando vc importa uma classe, autoimaticamente essa classe não contém o main…se caso, na mesma pasta houver um .class e vc criar uma instancia dessa classe na classe corrente que vc esta usando, ai sim, essa classe pode ou não conter o main(), apesar de que nunca prestei atenção se já importei uma classe que tem main…bom, pelo que eu me lembre não… :lol: !!
Não funciona mesmo se eu der import em uma classe que contém main()??