Olá, amigos! Sou iniciante em Java. Tive algumas aulas há tempos e resolvi voltar a estudar. Criei este pequeno programa:
[color=red]import javax.swing.JFrame;
public class CPrincipal {
public static void main(String args[]) {
JFrame janela = new JFrame();
janela.setSize(500,300);
janela.setVisible(true);
}
}[/color]
Fui compilar através do “javac” pelo CMD e apareceu este erro:
C:\Program Files\Java>javac CPrincipal.java CPrincipal.java:3: error: error while writing CPrincipal: CPrincipal.class (Aces
so negado)
public class CPrincipal {
^
1 error
C:\Program Files\Java>
Pesquisei no forum e fiz tudo que estava ao meu alcance, no entanto continua o mesmo erro.
Por favor, podem me ajudar?
Mas ‘C:\Program Files\Java’ é o diretório onde o seu java tá instalado? Em caso positivo… sem chance… coloque seu CPrincipal.java em outro diretório. Ex: ‘C:\java’ e compile de novo. Existe o safe (seguraça) que o java não permite alterar (hackear) o próprio path onde ele está.
Pois vc tá recebendo acesso negado… porque o java não pode/quer criar o .class dentro desta pasta!
OK! Entendi! Vou colocar o diretório Java em C:\ e compilar tudo novamente. Tenho autorização sim! Sou o proprietário! Posso simplesmente recortar a pasta Java de onde está e colar em C:\ e alterar os endereços “PATH” e funciona?
Não não… você num entendeu…
Autorização do OS… tipo… o java não pode alterar a past ‘C:\windows\system32’ por o Windows não deixa. No seu caso… o próprio java não deixa deixa vc acessar a pasta de instalação do JAVA para evitar que o seu java seja hackeado…
É permissão de acesso que é concedida pelo OS… tem nada haver vc ser proprietário, adm da maquina ou não!
Calma só disse o que apareceu, no caso o Windows bloqueia a escrita nas pastas de programas(por isso o bloqueio), podia executar o CMD como o administrador e rodar (mas isso é gambiarra).
Configure as variáveis de ambiente(caso não tenha configurado veja aqui) e salve seu fonte na pasta que desejar e você poderá compilar/executar usando os comandos da JDK facilmente.
Rafael_Leal algumas pessoas dizem ser errado instalar o JDK no diretório padrão (C:/Program Files/Java/) devido ao espaço em branco, você saberia dizer se isso realmente gera algum problema(e qual seria)?
Seu java tá OK…
Vc não não pode/deve criar progrmas dentro da que contem programas…
Crie uma pasta que vc vai por seus projetos… tipo… C:\PROJETOS_JAVA ou qualquer outra coisa… mas nunca dentro das pasta C:\windows ou C:\program files, pois são pastas que seu Windows gerencia… e pode ter pemissão de acesso negado devido a seguraça o próiprio windows.
[quote=Erick09]OK! Entendi! Vou colocar o diretório Java em C:\ e compilar tudo novamente. Tenho autorização sim! Sou o proprietário! Posso simplesmente recortar a pasta
Rafael_Leal algumas pessoas dizem ser errado instalar o JDK no diretório padrão (C:/Program Files/Java/) devido ao espaço em branco, você saberia dizer se isso realmente gera algum problema(e qual seria)?[/quote]
Somente se você configurar de PATH errado… pois o java vai no valor que tá no seu java_path… e o SO que fala para o java o caminho no path. No caso do windows ele fala para java que o path é “C:/Program Files/Java/” e automaticamente o windows converte o Program Files para ‘Program Files’… que sairia no fim C:/‘Program Files’/Java/
Isso é coisa de java 1.4 ou inferior e winxp sp1… no sp2 a MS já corrigiu
OK, amigo! Obrigado pela ajuda. No meu caso estou utilizando o Windows 7 Professional. Vou fazer o seguinte. Logo mais à noite terei acesso ao meu PC e farei o combinado. Aproveito para postar, também as linhas do CMD referente ao PATH.
No entanto, quando digitei C:\Java>java CPrincipal apareceu o seuginte erro:
C:\Java>java CPrincipal Error: could not open `C:\Program Files\Java\jre7\lib\i386\jvm.cfg’
[/quote]
que pasta Java…? onde seu Java está instalado…? se for… vc NÃO DEVIA ter feito isso. Deixe seu Java onde ele estava instalado… os seu programa/projeto que não DEVE está na pasta JAVA. Ele que deveria ter sido movido de C:\Program Files\Java
Pois agora parace que seu cmd não acha onde tá o arquivo de configuração do seu já em `C:\Program Files\Java\jre7\lib\i386\jvm.cfg’… e para seu Windows o Java está instalado lá em [b]C:\Program Files\Java[/b]…
E a sua variavel JAVA_HOME parece que está apotanto para JRE7 e não para SDK… dentro da pasta JAVA em ‘arquivo de programas’ tem a pasta JRE7???
Em C:\ coloquei os arquivos CPrincipal.java e o CPrincipal.class ;
Em C:\Arquivo de Programas\ coloquei de volta a pasta Java ;
As variáveis de ambiente ficaram assim:
CLASSPATH -> .; JAVA_HOME
JAVA_HOME => C:\Program Files\Java\jdk1.7.0_25
PATH => C:\Program Files\Java\jdk1.7.0_25\bin
Abri o cmd e digitei no prompt C::
java CPrincipal
O resultado foi abrir uma janela normal com o ícone do java no lado esquerdo superior.
SUCESSO!!!
Obrigado pela atenção que me deram e desculpe as falhas devido ao meu desconhecimento.
Agora tenho algumas dúvidas:
A) Poderia explicar um pouco mais o “porquê” do arquivo binário java.class ter que ficar em C:?
B) Qual a função das variáveis de ambiente?
CLASSPATH
JAVA_HOME
PATH
C) Toda vez que instalamos o JDK a pasta Java é colocada em C:\Arquivo de Programas\ por default. Se na instalação modificarmos o endereço para a pasta se localizar em “C” isso fará alguma diferença no funcionamento do todo?
D) Se eu utilizasse a IDE Eclipse para “rodar” o meu programa aconteceria todos esses problemas?
E) Bem o CMD é um interpretador do conteúdo digitado. Ele informa ao computador através de uma determinada linguagem o que ele deve fazer. A pasta Java, traz dentro de si a linguagem Java e o CMD através dos endereços das variáveis de ambiente, vai buscar esta linguagem e o CMD vai interpretá-la e converter essa interpretação para a linguagem de entendimento do computador, para o computador proceder às ordens dos comandos inseridos digitalmente.
E1. Está correto esse meu entendimento?
E2. Se estiver, qual a linguagem que o computador utiliza para processar as solicitações realizadas pelo CMD?
Cara, a janela é linda! Nem acredito que é o meu primeiro programa em Java!(Rsss…)
Poxa! Mais, uma vez, obrigado pela ajuda!
[quote=angelmix]Pronto! Corrigi a lenha! Ficou agora assim:
Em C:\ coloquei os arquivos CPrincipal.java e o CPrincipal.class ;
Em C:\Arquivo de Programas\ coloquei de volta a pasta Java ;
As variáveis de ambiente ficaram assim:
CLASSPATH -> .; JAVA_HOME
JAVA_HOME => C:\Program Files\Java\jdk1.7.0_25
PATH => C:\Program Files\Java\jdk1.7.0_25\bin
Abri o cmd e digitei no prompt C::
java CPrincipal
O resultado foi abrir uma janela normal com o ícone do java no lado esquerdo superior.
SUCESSO!!!
Obrigado pela atenção que me deram e desculpe as falhas devido ao meu desconhecimento.
[/quote]
Bom demais cara!!!
É isso ai… agora nunca mais você erra nisso!
Sem comando para especificar o destino… class é gerado onde está o arquivo .java é compilado!
Cada PC pode ter instalado o java e outros programas diretórios diferente do padrão. Dai por exemplo, invez do Eclipse ir em “C:\program files\java” para achar o java… ele pergunta pro Windows o valor da variável JAVA_HOME para saber onde está o Java.
JAVA_HOME = Onde o java está instalado…
PATH = São os serviços que o Windows liga como serviços basicos para funcionar…
CLASSPATH = É onde está suas classes que podem ser usada em seus programas… (se tiver vazio o copilador só vai compilar com as classes padrão que o java oferece) Se você estiver usando o Eclipse, ele configura o classpath somente pra o projeto que você está programando, ou seja, cada projeto tem o seu. Configurando no Windows… todos o projeto vão tem o mesmo classpath…
Não… desde que você configure o JAVA_HOME e PATH para o diretório onde você instalou o java.
Não… o eclipse configura essas variaveis por projeto e é bem mais fácil… pois se você apontar os diretórios errado ele reclama contigo.
Mais ou menos… o CMD não interpleta nada…
Quando você digita java CPrincipal… O comando vai nas variáveis e verifica se existe um serviço chamado JAVA… o serviço só existirá se a variável PATH conter o caminho do java até sua pasta bin… O CPrincipal o java que vai interpretar…
Isso não é duvida de JAVA, mas… o CMD trabalha com instruções somente… ele nunca faz nada… só instrui os outros programas fazer algo… java CPrincipal -> Manda o java executar CPrincipal format c: /q /u -> manda o format executar a ação em c: e que seja do modo rápido /q e que ignore qualquer alerta /u
Ou seja… ele manda outros programa fazer ações de acordo com parametros passados.
Agora… tá na hora de você começar usar o Eclipse ou NetBeans para programar…
OK! Entendido!
Instalei o Eclipse.
Você pode me indicar algum endereço na internet onde possa visualizar como utilizar o Eclipse?
Assim passo a utilizar o mesmo no meu estudo.