2013-03-19 3 views
0

J'essaie de savoir pourquoi un programme que j'ai créé dans l'EDI NetBeans 7.2.1 ne compilera pas & exécuté dans Notepad ++. C'est juste quelque chose qui me fascine et j'aimerais savoir pourquoi cela se passe. Le programme a la classe principale SalaryDemo et un autre salaire de classe qui contient les setters et getters pour le programme. Il fonctionne bien à l'exception d'une erreur de calcul. Je suis curieux de savoir comment cela fonctionnerait dans Notepad ++, et après avoir configuré Notepad ++, je trouve que cela ne fonctionne pas. J'ai essayé de passer à DOS et il a fait la même chose, donc je ne pense pas que ce soit Notepad ++.Erreur de compilation: impossible de trouver le symbole

Le programme utilise ArrayList pour un représentant des ventes et les ventes annuelles totales du représentant. Pour une raison quelconque, la machine virtuelle ne peut pas trouver le symbole pour les variables ArrayList ou Salary. C'est à ma compréhension. J'apprécierais vraiment l'aide avec ceci. C'est ma première fois alors vas-y doucement.

Voici le message d'erreur, si vous avez besoin de toute autre documentation ou code à l'appui, je l'obtiendrai immédiatement.

NPP_EXEC: "Compile and Run" 
CD: Matches Current Directory 
Current directory: Matches CD: 
javac SalaryDemo.java 
Process started >>> 
SalaryDemo.java:37: error: cannot find symbol 
     ArrayList<Salary> salaryArray = new ArrayList<>(); 
       ^
    symbol: class Salary 
    location: class SalaryDemo 
SalaryDemo.java:37: error: unexpected type 
    ArrayList<Salary> salaryArray = new ArrayList<>() 
               ^
required: class 
    found: <E>ArrayList<E> 
    where E is a type-variable: 
    E extends Object declared in class ArrayList 
SalaryDemo.java:52: error: cannot find symbol 
      Salary employee = new Salary(); 
      ^
    symbol: class Salary 
    location: class SalaryDemo 
SalaryDemo.java:52: error: cannot find symbol 
      Salary employee = new Salary(); 
           ^
    symbol: class Salary 
    location: class SalaryDemo 
SalaryDemo.java:103: error: cannot find symbol 
     Salary calcSalary = new Salary(); 
    ^
    symbol: class Salary 
    location: class SalaryDemo 
SalaryDemo.java:103: error: cannot find symbol 
     Salary calcSalary = new Salary(); 
          ^
    symbol: class Salary 
    location: class SalaryDemo 
6 errors 

Voici le code correspondant

SalaryDemo (main class) 

package salarydemofinal; 

// Imports the DecimalFormat class and all java.util classes 
import java.text.DecimalFormat; 

SalaryDemo (main class) 

// Public class SalaryDemo matches the filename and is accessable 
// by methods outside the SalaryDemo class. 
public class SalaryDemo 
{ 
    public static void main(String[] args) 
    { 
     // Initialize Scanner.  
     Scanner input = new Scanner(System.in); 

     // Initialize DecimalFormat to format percentages. 
     DecimalFormat df = new DecimalFormat("####%"); // Initialize 

     // Initialize the Array list and use the Salary class to store and 
     // manipulate elements of the array. 
     ArrayList<Salary> salaryArray = new ArrayList<Salary>(); 
     String newEmployee = ""; 
     double newSales = 0; 
     double counter; 
     double setSalesDifference; 
     double setTCompDifference; 
     double nqDifference; 

Salary class 

package salarydemofinal; 



public class Salary { 

    // Initialize local Salary class variables 
    private String name; // Holds employee name 
    private double base = 4000; // Holds fixed monthly salary 
    private double sales; // Holds annual sales figure data- 
    private double calc; // Holds data calculate commission 
    private double com = .25;  //Holds commission percentage multiplier 
    private double totalComp; // Holds sum of commission and annual salary data 
    private double annualSalary; // Holds data derived from 12 months of base rate 
    private double salesTarget = 120000; 
    private double threshold = salesTarget * .80; 
    private double commission; // sets the commission. 
    private double annualCompensation; 
    private double acceleratedSales; 
    private double notQualified; 

Voici comment je courais le Compier dans Notepad ++ ... Je me rends bien compte que cela est hors de la norme cependant, je pense que cela devrait fonctionner . Le programme n'est pas si complexe.

cd "$ (répertoire-courant)" javac $ (FILE_NAME) java $ (NAME_PART)

À mon avis, c'est la même méthode utilisée lorsque vous shell DOS et essayez de compiler et exécuter le programme . À ce moment, tout ce que je sais vraiment, c'est que les paquets contiennent toutes les classes nécessaires pour un programme (projet). L'instruction package doit correspondre à la fois dans la classe principale (SalaryDemo) et dans le salaire de la sous-classe.

J'ai essayé de placer ceci dans un répertoire C: \\ salarydemofinal comme l'EDI NetBeans et cela n'a pas fonctionné. Je sais que je manque probablement quelque chose de fondamental. Comme je l'ai mentionné, cela devrait fonctionner à mon avis. J'ai réfléchi et retiré le Notepad ++ de l'équation pour le compiler. J'ai trouvé un autre article de stackoverflow suggérant que tous les fichiers java doivent être compilés en même temps comme javac * .java . Je ne sais pas si c'est une étape positive ou non. Le nombre d'erreurs a été réduit à 4, mais le scanner n'a pas été trouvé cette fois. C'était la sortie:

SalaryDemo.java:31: erreur: ne peut pas trouver le symbole Entrée scanner = nouveau Scanner (System.in); ^ symbole: class Scanner emplacement: class SalaryDemo SalaryDemo.java:31: erreur: ne peut pas trouver le symbole Scanner input = new Scanner (System.in); ^ emplacement: class SalaireDemo SalaryDemo.java:38: erreur: ne peut pas trouver le symbole ArrayList salaryArray = new ArrayList(); ^ symbole: class ArrayList emplacement: classe SalaireDemo SalaireDemo.java: 38: erreur: impossible de trouver le symbole ArrayList salaryArray = new ArrayList(); ^ symbole: classe ArrayList Lieu: classe SalaryDemo 4 erreurs

+0

Avez-vous importé votre classe «Salaire»? – hsz

+0

Assez difficile à dire sans voir le paquet et les instructions d'importation pour vos classes. – Catchwa

+2

Montrez votre code. –

Répondre

0

Vous devez soit avoir dans le même package soit classe Salary que SalaryDemo ou vous avez besoin SalaryDemo-import il. S'ils sont déjà dans le même paquet, cela signifie que vous ne compilez pas Salary et que vous aurez besoin de publier comment vous exécutez le compilateur.

Il ne fait pas vraiment rapport d'un problème de trouver ArrayList, juste Salary. Lorsque vous obtenez cette erreur:

SalaryDemo.java:37: error: unexpected type 
    ArrayList<Salary> salaryArray = new ArrayList<>() 
               ^
required: class 
    found: <E>ArrayList<E> 
    where E is a type-variable: 
    E extends Object declared in class ArrayList 

ce qu'il vous dit est que le type paramétrées ArrayList<Salary> n'existe pas. Mais il n'existe pas car Salary n'existe pas. C'est juste le résultat de l'erreur précédente.

+0

Nathaniel qui l'a résolu. Auparavant, j'ai posté que le scanner est arrivé non trouvé et je n'ai pas eu l'importation pour cela. Lorsque j'ai ajouté la déclaration d'importation, elle a été compilée. C'était la façon dont je compilais le programme. Voici l'article que j'ai utilisé. http://stackoverflow.com/questions/7373173/cannot-find-symbol-for-another-class-file Merci à tous pour votre aide! –

Questions connexes