Erro ao compilar

38 respostas
F

esse é o erro que aparece ->cannot find symbol class Intraprime
quando tento compilar o seguinte código

public class ISSprog {
    public ResultSet rs;
    String xsql;
    
    Intraprime intra = new Intraprime();
                               
                          
    public void procuraContas() throws SQLException, ClassNotFoundException {
       rs = intra.executaSQL("select * from contas_iss order by contas");
   }
   
    public void listarContas() throws SQLException, ClassNotFoundException {
       rs = intra.executaSQL("select * from contas_iss order by tituloconta");
   }
   
    public void insereConta(String codigoconta, String tituloconta) throws SQLException, ClassNotFoundException {
       rs = intra.executaSQL("insert into contas_iss (codigoconta, tituloconta) values('" + codigoconta + "','" + tituloconta + "')");
   }
   
    public void apagaConta(String codigoconta, String tituloconta) throws SQLException, ClassNotFoundException {
       rs = intra.executaSQL("delete from contas_iss where codigoconta='" + codigoconta + "' and tituloconta='" + tituloconta + "'");
   }
  
   
   	public boolean insereFornecedor(String razao_social, String nome_fantasia, String cnpj, String endereco, String bairro, String cidade, String cep, String estado, String telefone, String fax, String contato) throws ClassNotFoundException, SQLException {
    	return intra.executaUpdate("insert into estoque_fornecedores (razao_social, nome_fantasia, cnpj, endereco, bairro, cidade, cep, estado, telefone, fax, contato) values('" + razao_social + "','" + nome_fantasia + "','" + cnpj + "','" + endereco + "','" + bairro + "','" + cidade + "','" + cep + "','" + estado + "','" + telefone + "','" + fax + "','" + contato + "')");
    }
      
      
    public String anoAtual(){
    	java.text.SimpleDateFormat formato = new java.text.SimpleDateFormat("yyyy");
	    java.util.Date hoje;
	    hoje = new java.util.Date();
	    return formato.format(hoje);
    }

Essas são as mensagens de erro.

<blockquote>--------------------Configuration: <Default>--------------------

C:\tomcat\common\classes\intranet\ISSprog.java:14: cannot find symbol

symbol  : class Intraprime

location: class intranet.ISSprog

Intraprime intra = new Intraprime();

^

C:\tomcat\common\classes\intranet\ISSprog.java:14: cannot find symbol

symbol  : class Intraprime

location: class intranet.ISSprog

Intraprime intra = new Intraprime();

^

2 errors

Process completed.

Não estou entendendo o porque desse erro, compilei o mesmo código no tomcat que está em funcionamento (Intranet-onde será colocado o novo programa)
A classe Intraprime acessa banco e faz variadas funções, e a mesma já é utilizada por quase todas as outras classes da intranet.

Podem me ajudar?pois não estou identificando os erros.

38 Respostas

R

Você deve ver se esta classe está em outro pacote. Talvez seja necessário importar. Não sei como vc tá fazendo, mas geralmente quando ocorre esse erro é pq vc está usando uma classe que não foi importada ou não existe.

F
package intranet;

import org.postgresql.Driver;
import sun.jdbc.odbc.JdbcOdbcDriver;
import java.sql.*;
import java.text.*;
import java.util.*;
import java.io.*;

essas são as importações cara...

conferem?

P

essa classe Intraprime, esta na package intranet???

F

como posso ver esse pacote,
não fui eu quem desenvolvi essas classes, eu somente estou adicionando classes, e o rapaz que desenvolveu anteriormente não se encontra mais na empresa, além disso tenho q afirmar q sou um iniciante.

como posso ver esse pacote??
se puder me ajudar ficaria grato.

P

os pacotes da aplicação, são pastas no seu sistema operacional…isso facilita pra vc localiza-los…e os arquivos estão lá…

se vc estiver utilizando o Eclipse para desenvolver, eh soh mandar um Ctrl+Shift+O q ele organiza sozinho os imports…senão, vc tem q saber o caminho da classe para poder utilizar…

por exemplo:

import intranet.persistencia.Intraprime

isso eh um exemplo, aparentemente intranet, deve ser o pacote raiz da sua aplicação…agora vc localiza a classe Intraprime e coloca o import adequado…

tendeu?

F

estou utilizando o JCREATOR,

entendi sua explicação sim…

mas não vou mecher na classe Intraprime pois ela já está em funcionamento na intranet, ela está rodando perfeitamente, somente quando vou compilar essa minha NOVA classe que está ocorrendo este erro…
bom fiz um teste e tentei compilar novamente uma outra classe da área de Estoque para ver se iria funcionar, bom o resultado foi o mesmo erro, da mesma maneira, e ambas já estão em funcionamento na intranet.
Estou utilizando o tomcat, ainda não entendo como uma classe que já possui o .class está rodando mesmo com esse erro, porque ocorre isso?

P

o problema pode ser como vc montou o seu projeto no JCreator…vc nao vai precisar mexer nessa classe…vc soh precisa saber onde ela esta…e efetuar o import correto…vc disse q existem outras classes q utilizam a Intraprime, se for possivel, da uma olhada no fonte de alguma dessas classes e veja como o import esta sendo feito…se tiver alguma classe do mesmo pacote dessa sua nova sera o teste ideal…

outra coisa…se vc quer mesmo utilizar uma IDE, o JCreator eh mais para quem esta começando a estudar Java, mas como seu problema parece ser mais grave, ja q vc esta mexendo num sistema ja existente…tente utilizar o Eclipse, e paralelamente vai estudando Java com coisas fora da sua aplicação…

F

estou olhando essas possibilidades,

mas po acho que o rapaz que estava desenvolvendo antes de mim utilizava o NetBeens, e paralelamente o JCREATOR, pois tinham esses dois programas instalados aqui…

com relação aos imports, eu olhei sim antes de desenvolver este, e eu praticamente copiei o que tinha na outra, pois tema as mesmas funcionalidades,

com relação as outras já existentes, percebi que ao tentar compilar novamente uma classe que já existe e está em uso perfeito, ocorre o mesmo erro, será que devo mecher em algo no tomcat para que funcione corretamente o “Javac”

P

cara…vc conseguiu achar a classe???

sera q essa classe nao esta dentro de um jar??? e vc nao esta colocando esse jar no seu CLASSPATH???

flw

F

cara a intranet está baseada no Tomcat,
estou acessando as classes via ssh, mas tb acesso diretamente na máquina (Linux) e quando tento compilar as classes( essas classes q estou falando já estão em funcionamento, já existem os class delas) da o mesmo erro da minha que é nova.
como pode dar erro se já está funcionando, e nenhum serviço da intranet está fora do ar,
esse novo programa que estou desenvolvendo fará parte da intranet.

as classes estão em. \tomcat\common\classes\intranet

P

cara…vc precisa ter um ambiente de desenvolvimento completo na sua máquina…com o projeto e com um tomcat na sua maquina…senao, ao tentar compilar na sua maquina como vc quer q o compilar encontre as classes q vc esta referenciando???

F

ai é que está, veja bem se você me entende…

eu faço as classes na minha máquina, mas mando para o local especifico \tomcat\common\classes\intranet via SSH, para a máquina onde está rodando a INTRANET, é onde está instalado o tomcat e está tudo funcionando, corretamente…

Estou fazendo do ambiente operacional o meu ambiente de testes, já que eu não estou modificando nenhuma classe já existente somente estou acrescentendo uma nova classe que irá referênciar o meu programa dentro da intranet, todas as páginas JSP que estou desenvolvendo possui suas funcionalidades nessa nova classe. Porém essa nova classe utiliza a Classe Intraprime para acesso ao banco e comandos SQL.

P

se vc compilarna sua maquina vai dar erro mesmo então…

vc realmente vai fazer alguma coisa na sua máquina e colocar em produção sem testar???

F

o importante não é a classe estar em produção, o importante é o porque desse erro.

não terá problemas testar na área de produção como já disse anteriormente, pois não modifiquei nada em nenhuma classe já existente e a Intranet está a todo vapor.

quero simplismente compilar meu arquivo .java

que continua dando os mesmos erros.
será que pode ter algum problema de atualização ou instalação do java??

P

mais uma vez eu vou repetir…seu arquivo nao vai compilar dessa forma q vc ets afazendo…

pq? pq na classe q vc criou, vc utiliza a classe Intraprime porém esta classe esta lá longe no seu servidor q vc acessa via ssh, agora, como o seu compilador pobrezinho javac coitado, vai encontrar essa classe? ele simplesmente nao vai encontrar…pra ele essa classe simplesmente nao existe…

por isso q, como vc mesmo disse, ao pegar classes q estao em produção na sua intranet e tentar compilar, da o mesmo erro…

tendeu?

flw

F

ok, acho que você entendeu parcialmente.
realmente estou acessando via SSH, porpem eu não estou compilando em minha máquina, após fazer um up-load do arquivo java para a máquina onde está instalado o tomcat(aki na empresa a intranet roda em uma máquina especifica para ela, utiliza linux e tem o tomcat instalado, todos na rede acessam via ip. entendeu?
bom eu estou enviando as classes para a própria máquina “intranet” e é diretamente na própria máquina que estou tentando compilar.

Mas con sua explicação anterior percebi o que possa estar acontecendo, tenho como ver qual a versão do java instalado? a máquina é linux, e se tem como atualizar? e mais, se o javac está instalado corretamente.

F

percebi que essa importação tb está dando erro.

import org.postgresql.Driver;
G

[quote=“Felipe_MP”]percebi que essa importação tb está dando erro.

import org.postgresql.Driver;

Está com o JAR do PostgreSQL no classpath ?

P

caro Felipe…

vc deve estar tentando compilar a classe no local errado…quando vc copiar o .java pro servidor (IC!) tem q colocar no package correto…senao nao vai funcionar mesmo…aih vai dar pau nos imports, etc e talz…

outra coisa…vc tem q ver aonde estao os fontes e aonde esta os .class…

mas de qq forma…se vc pretende continuar trabalhando nessa aplicação, por favor, pelo bem do desenvolvimento…arrume um ambiente pra vc…assim como vc esta fazendo vai ser impossibel obter qq tipo de qualidade e produtividade…

flw

F

pedro,
um ambiente pra mim seria um ambiente especifico só para testes?

bom gostaria de fazer isso sim aki na minha própria máquina, para isso basta eu instalar o tomcat aki certo???

outra coisa, todos os .class utilizados pelo meu arquivo estão no mesmo local, já disse isso, não vejo a necessidade de ficar repetindo a todo momento o que venho dizendo, estou fazendo testes em uma nova classe que eu mesmo desenvolvi e postei aqui para que todos vejam, e estou testando em um ambiente de produção que está funcionando perfeitamente e foi desenvolvido anteriormente por outra pessoa, como tb já disse sou um iniciante, ainda tenho dúvidas que possam ser bobas para vocês mas para mim são essenciais para o bom funcionamento das minhas atividades.
Gostaria que todos os posts de vocês me explicacem melhor e com mais claresa, agradeço a compreenção de todos.

F

[quote=“Guilherme Mello”]

“Felipe_MP”:
percebi que essa importação tb está dando erro.

import org.postgresql.Driver;

Está com o JAR do PostgreSQL no classpath ?

Guilherme percebi esse problema, e acho que deve ser isso mesmo, ou algo desse tipo, mas não sei como se faz isso e nem como posso vizualizar esse problema, eu utilizo Linux/Tomcat pode me ajudar a perceber se existe mesmo esse problema e se sim como resolve-lo?

Bom esse ambiente que me referi anteriormente é o ambiente de produção que é a Intranet da empresa, e está funcionando corretamente.
Então acho um pouco estranho esse erro acontecer pois outras classes já em uso utilizan o postgresql para suas consultas e tudo mais, inclusive peguei esse import de uma outra classe já existente e em uso(e que inclusive funciona perfeitamente).

P

cara…ja estamos na terceira pagina na discussão do seu problema, uma coisa q ja esta clara eh o problema no seu ambiente…

um ambiente na sua propria maquina, seria sim um ambiente de desenvolvimento com um tomcat na sua maquina, sdk, e tudo mais…

agora vamos ao lance do classpath…procure o arquivo .classpath com o ponto antes mesmo…e la estao as referencias para os jars…da uma conferida…

em relação ao problema da compilação da sua classe faz o seguinte, esquece import…ja hora q vc estiver fazendo a declaração da classe, coloque o caminho completo, por exemplo:

br.com.teste.classes.Classe classe = new br.com.teste.classes.Classe&#40;&#41;;

tendeu? aih eh soh a sua classe nova estar declarada num package dentro da sua aplicação q vai rolar…

flw

F

esse emdereço seria para instanciar a classe que quero utilizar???

então o ednereço seria qual? o próprio endereço do tomcat?? junto com o endereço Ip da máquina em questão???

outra coisa, esse arquivo .classpath está em qual pasta do tomcat???

F

cara, acessei aki como vi na internet…

foi até o \etc e li o arquivo profile (vi profile)

la vi algumas coisas que é claro que não entendi, mas vizualizei a seguinte linha

JAVA_HOME=/usr/java/j2sdk1.4.2_02

essa é a variavel de ambiente do java???

de resto não vizualizei nada do postgresql.

Outra coisa. como botar minha nova classe no package?? e como ver o package já existente?

P

profile != classpath

vc tem q localizar o .java q a sua classe não esta achando…na primeira linha desse .java vai ter a declaracao de packge dele…aih vc coloca esse endereco completo na sua classe…

F

Brother, onde eu localizo esse .java?

P

vc nao tem os fontes da sua intranet? assim nao rola neh nrother…

da um grep la no seu server…

ps: cara, esta claro que voce ainda precisa aprender bastante, com certeza te jogaram nessa fogueira aih…veja se vc acha realemnte q esta preparado pra dar manutenção nessa sua intranet…

F

fogueira com certeza.

cara é pra isso que existem forúns, eu do muita assistência na área que mais tenho conhecimento, mas pô se não estiver afim de ajudar um iniciante tah beleza, vou ter que dar me jeito.

Mesmo assim agradeço a compreenção e a pasciência.
Valeu mesmo.

P

eu nao gosto desse tipo de situação, mas sou obrigado a responder…

o seu tópico teve 28 respostas…da uma lida em todas as msgs, veja quantas alterantivas foram passadas…

fala serio hein…

F

Estamos aqui para ajudar, afinal é esse o intuito desse portal. Com certeza todos os moderadores desse portal concordam comigo, conhecimento é algo que se deve ser repassado, não escondido.

Todos as mensagens postadas neste forum não somente me ajudaram mas também vão ajudar a outros que passarem por aqui com as mesmas duvidas minhas.

É sério obrigado por tudo, tive bons aprendizados aqui. Te desejo paz e humildade nesse novo ano. E vamos continuar esse forum com o assunto inicial.

F

Olá a todos, fikei ausente por um dia.

Mas voltei e perguntando, alguém tem mais alguma sugestão sobre me problema???

F

como faço para incorporar uma nova classe em um package???

P

na primeira linha da classe vc deve fazer a declaração da package q ela se encontra…

exemplo:

package br.com.teste;
F

seria deste modo???

package intranet;//intranet é o nome do pacote

import java.sql.<em>;

import java.text.</em>;

import java.util.*;
P

isso, mas tem q ser o caminho completo do package, “intranet” eh o package base da sua aplicação, demoro, eh isso aih mesmo…

F

cara vc está em algum canal irc???

derrepente seria melhor…

é claro se for possivel neh.

F

ae consegui o pdf do livro Java como programar 4º

é bom???

se alguém quiser eu do o link para baichar.

F

cara ainda não estou conseguindo compilar minha classe…

existe algum modo especifico de se compilar no Tomcat além do javac???

Criado 8 de janeiro de 2007
Ultima resposta 1 de fev. de 2007
Respostas 38
Participantes 4