2016-04-14 2 views
0

J'essaie d'obtenir un programme que j'ai codé pour fonctionner correctement. Jusque là, javac et java sont bien, mais j'ai un NoClassDefFoundError.Java + Json - ClassNotFoundDefError

Cette capture d'écran montre comment j'ai javac, java le programme et le rapport d'invite de commande. enter image description here Comme vous pouvez le voir, j'ai 3 fichiers source, et donc 3 classes. PeriodicTable ne fait rien en rapport avec le problème.

intérieur du tableau de classe I have ...

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.json.JsonArray; 
import javax.json.JsonObject; 

import java.awt.GridBagLayout; 
import java.awt.GridBagConstraints; 
import java.awt.Color; 
import java.awt.Toolkit; 
import java.awt.Dimension; 

import java.io.IOException; 

class Table { 
    //Predefining some global variables 
    DataBaseReader dbReader; 
    //some methods... 
    protected void showLayout() { 
     dbReader = new DataBaseReader(); 
     //A few lines of code 
     try { 
      JsonArray elements = dbReader.readDataBase(); //Here it enters the DataBaseReader class through dbReader 
      //Some more code 
     } catch(IOException ioe) { 
      ioe.printStackTrace(); 
     } 
    } 
} 

Voici ma classe DataBaseReader

import javax.json.Json; 
import javax.json.JsonReader; 
import javax.json.JsonObject; 
import javax.json.JsonArray; 
import java.io.FileReader; 
import java.io.IOException; 

public class DataBaseReader 
{ 
public JsonArray readDataBase() throws IOException {  
    System.out.println("Check!"); //This check is reached 
    JsonReader reader = Json.createReader(new FileReader("C:/projects/PeriodicTable/Elements.JSON")); 
    System.out.println("Check!"); //This check is not reached 
    JsonObject jsonst = reader.readObject(); 
    reader.close(); 
    return jsonst.getJsonArray("Elements"); 
} 
} 

Quelles sont les versions, programmes, etc j'utilise actuellement?

Java 8

invite de commande

Bloc-notes

javax.json-1.0.jar

énoncer clairement ma question ... Toutes les idées ou des explications sur ce qui est à l'origine de cette erreur ?

+0

vous configurez votre '-classpath' deux fois. – nyname00

+0

CBastianelli a dit quelque chose qui a fait réfléchir à ce sujet. Cependant, pour une raison quelconque, l'invite de commande ne peut pas trouver les classes à moins que j'utilise -classpath une seconde fois ... Des idées sur la façon de résoudre ce problème? – Tyler

+0

Vous ne pouvez lancer des programmes qui ont une méthode 'main()' via 'java' – Bajal

Répondre

0

je pense que vous manquez javax.json-api-1.0.jar fichier

+0

J'ai utilisé javax .json-1.0.jar et ont travaillé avec succès avec les tentatives précédentes pour ce programme. (Bien que pour d'autres raisons, j'ai dû annuler ces tentatives) – Tyler

+0

pouvez-vous montrer les déclarations d'importation de la classe – Priyamal

+0

Je vais les ajouter au message original, juste besoin de quelques minutes – Tyler