Como eu faço para dentro de uma classe que pertence a um pacote eu fazer referência a outra classe deste mesmo pacote ?
somente import <nomedopacote.nomedaclasse>
não funciona?
Classe no java
Y
3 Respostas
A
Se a classe estiver dentro do mesmo diretório, você não precisa nem fazer o import!
Y
<em><strong><strong><strong>Olha só: esta é a classe Incrementa que está dentro do diretório umpacote e cujo nome é Incrementa.class:</strong></strong></strong></em>**
package umpacote;
import <a href="http://java.io">java.io</a>.<em>;
import java.util.</em>;
import java.sql.<em>;
public class Incrementa {
public Incrementa() {
}
public int incrementa(String Tabela){
Connection con = Conexao.conectar();
int codigo=0;
try {
Statement stm = con.createStatement();
ResultSet dados=stm.executeQuery("SELECT MAX(Id) as Ultimo FROM "+Tabela);
if (!dados.next())
codigo=1;
else
codigo=dados.getInt("Ultimo") + 1;
Conexao.desconectar(con);
}
catch (Exception e) {
System.out.println("Erro no incremento do ID:"+e.toString());
Conexao.desconectar(con);
}
return codigo;
}
}
<em><strong><strong><strong>Olha só: esta é a classe Conexao que está dentro do diretório umpacote e cujo nome é Conexao.class:</strong></strong></strong></em></em>*
package umpacote;
import <a href="http://java.io">java.io</a>.<em>;
import java.util.</em>;
import java.sql.<em>;
public class Conexao
{
public Conexao()
{
}
/**
@roseuid 3E31779F033E
<em>/
public static Connection conectar()
{ Connection con;
try {
String sHost = "10.30.2.15"; // The local machine ( SEFAZDESENV )
String sConnect = "jdbc:freetds:sqlserver://"+sHost+":1433/fac";
Class.forName("com.internetcds.jdbc.tds.Driver");
con = DriverManager.getConnection(sConnect,"sa","");
}
catch(SQLException e){
e.printStackTrace();
return null;
}
catch(ClassNotFoundException e){
e.printStackTrace();
return null;
}
return con;
}
/</em>*
@roseuid 3E3177A50032
<em>/
public static void desconectar(java.sql.Connection con)
{
try {
con.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
}
<strong><strong><strong><strong>Agora pq quando eu vou compilar a classe Incrementa ocorre este erro:</strong></strong></strong></strong></em></em>*****
C:jspfacumpacoteIncrementa.java:14: cannot resolve symbol
symbol : variable Conexao
location: class umpacote.Incrementa
Connection con = Conexao.conectar();
^
C:jspfacumpacoteIncrementa.java:24: cannot resolve symbol
symbol : variable Conexao
location: class umpacote.Incrementa
Conexao.desconectar(con);
^
C:jspfacumpacoteIncrementa.java:28: cannot resolve symbol
symbol : variable Conexao
location: class umpacote.Incrementa
Conexao.desconectar(con);
^
3 errors
2 error(s)
P
Bom, você tentou compilar as duas classes juntas? javac *.java no diretório umpacote? O seu erro me parece ter surgido por tentar compilar apenas a classe Incrementa sem compilar a classe Conexao junto.
Se você tentou javac * e mesmo assim não deu, pode ainda ser problema do seu CLASSPATH. Se estiver usando GNU/Linux, tente, dentro do diretório umpacote, executar javac -cp $CLASSPATH:. *.java (o "." é o diretório atual, assim você estará dizendo ao compilador java pra procurar as classes referenciadas também neste diretório).
Criado 6 de fevereiro de 2003
Ultima resposta 6 de fev. de 2003
Respostas 3
Participantes 3