PDA

View Full Version : [JAVA]Compilazione file.java errore


kulosia
19-10-2011, 01:15
Salve ragazzi,
è da ieri che ho cominciato con il java, e vorrei capire cos'è che sbaglio nella compilazione.
in pratica ho installato l'sdk su windows 7 64bit e mi ha creato una cartella
chiamata: j2sdk1.4.1
fin qui tutto bene.
poi nella cartella "bin" c'è il file java.exe che è per eseguire un file compilato class e poi c'è javac.exe che serve a compilare un progetto Prova.java
compilandolo e uscirà fuori Prova.class.

tutto questo lo faccio dal cmd.exe
apro e scrivo cd C:\j2sdk1.4.1\bin
ok così arrivo qui:
C:\j2sdk1.4.1\bin>
a questo punto scrivo:

C:\j2sdk1.4.1\bin>javac "percorso del file sorgente da compilare"
mettiamo il caso che è sempre nella cartella bin quindi faccio così:

C:\j2sdk1.4.1\bin>javac Prova.java

a questo punto ecco cosa mi esce nella compilazione:


C:\j2sdk1.4.1\bin>javac Prova.java
Prova.java:4: unclosed character literal
System.out.println('Hello World!');
^
Prova.java:4: unclosed character literal
System.out.println('Hello World!');
^
Prova.java:4: ')' expected
System.out.println('Hello World!');
^
3 errors


il sorgente è una prova ed è questo:

public class Prova {
public static void main(String[] args){

System.out.println('Hello World!');

}

}

cosa stò sbagliando??
in pratica stò provando con prova.java xkè pensavo che il file che dovevo modificare aveva errori mentre non è così è qualcosa che sbaglio io.

VICIUS
19-10-2011, 05:57
L'apice singolo può essere usato solo per delimitare singoli caratteri e non intere stringhe. Ad esempio 'H' è valido ma 'HU' no perché si tratta di due caratteri. Per stringhe devi usare gli apici doppi es: "Hardware Upgrade".

Come ultima cosa installa l'ultima versione del jdk 7. La 1.4 ha più di 10 anni.

kulosia
19-10-2011, 23:34
Grazie per l'aiuto comunque nemmeno con i doppi apici non ho risolto ecco l'errore:

C:\j2sdk1.4.1\bin>javac Prova.java
Prova.java:4: empty character literal
System.out.println(''Hello World!'');
^
Prova.java:4: unclosed character literal
System.out.println(''Hello World!'');
^
Prova.java:4: empty character literal
System.out.println(''Hello World!'');
^
Prova.java:4: unclosed character literal
System.out.println(''Hello World!'');
^
Prova.java:4: ')' expected
System.out.println(''Hello World!'');
^
5 errors

ora provo con il 7 e ti faccio sapere.

GByTe87
19-10-2011, 23:40
Ehm, devi usare i doppi apici (non un doppio apice), comunemente dette virgolette: "Hello World!"

kulosia
19-10-2011, 23:50
Stesso errore anche con il 7. :(
Praticamente io devo compilare un progetto preso su internet e mi da 100 errori
e penso che sia difficile che un sorgente viene dato con errori,
però per scaramanzia ho provato con un file di prova e mi da lo stesso l'errore.

C:\Program Files\Java\jdk1.7.0_01\bin>javac Prova.java
Prova.java:4: error: empty character literal
System.out.println(''Hello World!'');
^
Prova.java:4: error: unclosed character literal
System.out.println(''Hello World!'');
^
Prova.java:4: error: ';' expected
System.out.println(''Hello World!'');
^
Prova.java:4: error: empty character literal
System.out.println(''Hello World!'');
^
Prova.java:4: error: unclosed character literal
System.out.println(''Hello World!'');
^
5 errors


per quale motivo da errori a manetta? posto anche sorgente preso dal web per vedere se ha errori? io non sono pratico visto che ho cominciato da pochissimo però non so penso sia qualche problema di installazione java o del compilatore xkè comunque a me sembra un sorgente fatto bene.

GByTe87
19-10-2011, 23:57
Stai sbagliando simbolo..

kulosia
19-10-2011, 23:57
Ehm, devi usare i doppi apici (non un doppio apice), comunemente dette virgolette: "Hello World!"

Hai ragione ho sbagliato scusa.. :ave:
ora ha compilato il file di prova.java provo con quello preso da internet

kulosia
20-10-2011, 00:01
quello preso dal web ecco il risultato:

symbol: variable ChatBlock
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:330: error: cannot find symbol
ChatBlock.sendMessage(sender, ChatColor.
RED + "No nameable fields found");
^
symbol: variable ChatColor
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:330: error: cannot find symbol
ChatBlock.sendMessage(sender, ChatColor.
RED + "No nameable fields found");
^
symbol: variable ChatBlock
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:344: error: cannot find symbol
if (args.length == 1 && Helper.isInteger(args[0]))
^
symbol: variable Helper
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:348: error: cannot find symbol
Field field = plugin.getForceFieldManager().getOneAl
lowedField(block, player, FieldFlag.ALL);
^
symbol: class Field
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:348: error: cannot find symbol
Field field = plugin.getForceFieldManager().getOneAl
lowedField(block, player, FieldFlag.ALL);

^
symbol: variable FieldFlag
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:352: error: cannot find symbol
FieldSettings fs = field.getSettings();
^
symbol: class FieldSettings
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:354: error: cannot find symbol
if (!fs.hasFlag(FieldFlag.CUBOID))
^
symbol: variable FieldFlag
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:361: error: cannot find symbol
ChatBlock.sendMessage(sender, ChatColor.
AQUA + "Radius set to " + radius);
^
symbol: variable ChatColor
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:361: error: cannot find symbol
ChatBlock.sendMessage(sender, ChatColor.
AQUA + "Radius set to " + radius);
^
symbol: variable ChatBlock
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:365: error: cannot find symbol
ChatBlock.sendMessage(sender, ChatColor.
RED + "Radius must be less than or equal to " + fs.getRadius());
^
symbol: variable ChatColor
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:365: error: cannot find symbol
ChatBlock.sendMessage(sender, ChatColor.
RED + "Radius must be less than or equal to " + fs.getRadius());
^
symbol: variable ChatBlock
location: class CommandManager
C:\j2sdk1.4.1\bin\CommandManager.java:370: error: cannot find symbol
ChatBlock.sendMessage(sender, ChatColor.RED
+ "Cannot change radius of a cuboid");
^
symbol: variable ChatColor
location: class CommandManager
100 errors

è un progetto con più file java e cartelle si compila comunque uno alla volta oppure c'è un'altro metodo? perchè forse da errori proprio xkè nel sorgente richiama altri file.

giozh
20-10-2011, 09:29
se non erro questi errori derivano dal fatto che il compilatore cerca gli oggetti ChatColor eccetera, che non trova. Sicuramente questi saranno degli oggetti definiti in opportune classi distinte dal sorgente che stai compilando. Indi devi importare questi file tramite la import all'inizio del codice. Ovviamente dovrai compilare pure le classi che implementano questi oggetti.

kulosia
20-10-2011, 09:49
Dal sorgente sono già importati all'inizio del codice


package net.sacredlabyrinth.Phaed.PreciousStones.managers;

import net.sacredlabyrinth.Phaed.PreciousStones.*;
import net.sacredlabyrinth.Phaed.PreciousStones.vectors.Field;
import net.sacredlabyrinth.Phaed.PreciousStones.vectors.Unbreakable;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;


Solo che ad esempio ChatColor che importa, non vedo nessun file sorgente che si chiama ChatColor.java,
linko il sorgente così puoi darci un occhiata tu se è possibile e mi puoi fare questo favore.

https://github.com/phaed420/PreciousStones/zipball/master

Il file che cerco di modificare io è:

CommandManager.java
che si trova nella directory:

phaed420-PreciousStones-a3b516e\src\net\sacredlabyrinth\Phaed\PreciousStones\managers

Potresti dirmi cosa sbaglio vedendo il sorgente?

kulosia
21-10-2011, 08:10
ok mi arrendo da riga di comando.
visto che è un progetto con molti file java e che ho cominciato da poco a usare "java".
meglio usare in IDE.
il progetto da compilare nella directory principale c'è un file chiamato PreciousStones.iml
e mi sorge il dubbio forse si compila con eclipe un pò come fa marven con file pom.xml?
Vi prego datemi una mano vorrei capirci qualcosa.

Edit.

Detto una stupidagine.
comunque provato anche con Eclipse e 100 errori persistono per la compilazione

img.

http://melux.org/img.jpg