Chamando um programa java

Olá,

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:

um programa dentro de outro ?

isso é conceito de OO, chamar uma classe dentro de outro !

sera mais clara ?manda o codigo …

[]´s

o código do programa java-banco de dados é:

import java.sql.*;

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 programa q envia os dados para o vrml é:

import java.awt.;
import java.util.
;
import java.awt.event.;
import vrml.
;
import vrml.node.;
import vrml.field.
;

public class Escala extends Script
{
private SFVec3f novaEscala;
private SFFloat timeStamp;

float esc[] = {1, 1, 1};
static String[] eventos = {"novaEscala", "timeStamp"};

public void initialize (){
    System.out.println("initialize - begin ");
    novaEscala = (SFVec3f) getEventOut ("novaEscala");
    timeStamp = (SFFloat) getEventOut ("timeStamp");
    System.out.println("initialize - end ");
}

public void set_escala(){

	novaEscala.setValue(esc);
}

public void processEvent(vrml.Event e){
       System.out.println("Valor: " + esc[1]);
            esc [1] = (float) (Math.random()*10);
			set_escala();

}

}

preciso chamar o primeiro programa dentro do segundo…

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();

Reforço o q a Bani disse…

na realidade é só voce construir a classe x (x = new x()), que seria sua outra tela, dentro da y.

Olá…

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?

Obrigado

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.

Rafael

Oi, Pechula!

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!

Abraços, e é isso! d:c]

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

Programa1 oPrg = new Programa1();
oPrg.metodo();

Obrigado.

é 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()??

Valeu, ate mais…