2014-11-25 4 views
0

Я работаю со следующими программами: В частности Tomcat 8, VirtualBox виртуальная машина, & Gson 2.3.1пакет com.google.gson не существует

Я пытаюсь проверить метод в Gson, что позволяет вам marshall/unmarshall объекты Java в формате JSON.

Это код, я использую это для (для того, чтобы скомпилировать должным образом, оба класса Java кода нужно компилировать в то же время ...:

Самое главное это мой код для тестирования метод преобразования JSON:

package com.cs330; 
import com.google.gson.Gson; 

    public class IngredientProto 
    { 
     public static void main (String[] args) 
     { 
     Ingredient neo = new Ingredient(6, "cheddar cheese", "cheese"); 

     System.out.println("Object confirmed: " + neo.toString()); 

     //New GSON object for marshalling... 
     Gson neoIngredient = new Gson(); 

     //Use said object to create the JSON formatted String for this Ingredient (Object). 
     String jsonThis = neoIngredient.toJson(neo); 

     //Printing out the new object (Ingredient)... 
     System.out.println ("Object formatted to JSON: " + jsonThis); 

     //Convert Back via unmarshalling. NOW! 
     Ingredient orga = neoIngredient.fromJson(jsonThis, Ingredient.class); 

     //Print Again! 
     System.out.println("Reverting back into Object variable: " + orga.toString()); 
     } 
     } 

Здесь для справки, мой код для ингредиента класса я работаю ...

package com.cs330; 
import java.util.Scanner; 

public class Ingredient //implements Comparable<Ingredient> 
{ 
private int ingredientID; 
private String ingredientName; 
protected String ingredientType; 

    //DEFAULT CONSTRUCTOR 
    Ingredient() 
    { 
    this.ingredientID = 0; 
    this.ingredientName = "No Ingredient"; 
    this.ingredientType = "No Type"; 
    } 

    //CONSTRUCTOR 1 - Parameters for Name, ID, and Type. 
    Ingredient(int ingredientID, String ingredientName, String ingredientType) 
    { 
    setIngredientID(ingredientID); 
    setIngredientName(ingredientName); 
    setIngredientType(ingredientType); 
    } 

    //CONSTRUCTOR 2 - Parameters for Name and Type. 
    Ingredient(String ingredientName, String ingredientType) 
    { 
    this.ingredientID = 0; 
    setIngredientName(ingredientName); 
    setIngredientType(ingredientType); 
    } 

    //Getters and Setters Go here. 

     //TO STRING 
     public String toString() 
     { 
     String results = " "; 
     results = this.ingredientID + ": " + this.ingredientName 
        + " (" + this.ingredientType + ") "; 
     return results; 
     }//END toSTRING 

    //...Main for testing... 

}//END PROGRAM 

ошибки я получаю включаю Фолль в силу всякий раз, когда я пытаюсь скомпилировать их в CMD на моей виртуальной машине:

  1. error: package com.google.gson does not exist - У меня есть импорт com.google.gson.Gson, где она должна быть в моей программе, но я получаю эту ошибку мой код имеет ничего плохого в этом ...
  2. error: class, interface, or enum expected - Я действительно добавляю пакет com.google.gson, и я получаю эту ошибку, несмотря на то, что все остальное правильно.

Обе ошибки возникают, когда я пытаюсь проверить код программы Gson, наряду с созданным мной классом Ingredient. Моя реальная проблема заключается в том, как я могу эффективно справиться с этим ...

+2

1) 'import' утверждение позволяет использовать простое имя типа , На самом деле это ничего не значит. Вы должны добавить библиотеку в путь к компиляции (и времени выполнения). –

+0

2) Пожалуйста, покажите, где это происходит. –

+0

Ошибка возникает в строках 2 и 13 моего Java-кода GSON при компиляции в CMD. Поскольку код был убежден, что требуемый пакет GSON для запуска программы не существует, это означает, что он не может найти символы или классы, необходимые для получения методов, полагающихся на этот код для работы. Это моя проблема в двух словах ... – Shokew

ответ

0

Для компиляции вам нужен файл Json jar в Tomcat classpath во время выполнения и в classpath of your development environment.

+0

вы были правы все время, но мне также нужен файл gson jar в c: \ progs ... Все начало работать. Я также принял ваш совет, чтобы поставить gson в мою главную библиотеку в tomcat8 и в мою папку webserv1/lib на моей виртуальной машине. Там тоже работали. Спасибо за это. – Shokew

+0

конкретный пример для osx (возможно, linux): перейдите по адресу http://mvnrepository.com/artifact/com.google.code.gson/gson и загрузите последнюю банку (в ту же папку, в которой вы будете находиться, когда вы запустите javac), например в http://central.maven.org/maven2/com/google/code/gson/gson/2.6.2/gson-2.6.2.jar, затем скомпилируйте с помощью '' 'javac -classpath'' pwd'/' ls gson * .jar' "mycode.java''' – mwag

0

При компиляции в командной строке используйте -cp или -classpath, чтобы установить gson.jar в свой путь к классам. Что-то вроде этого:

javac -classpath <LOCATION_TO_GSON JAR FILE> *.java 

Во время проверки выполнения, что gson библиотека присутствует в вашем пути к классам (или WEB-INF/lib или \apache-tomcat-7.0.42\lib)

+0

Я знаю, что опаздываю, поскольку я пытался следовать вашему идеальному совету здесь ... Я уверен, что это звучит как javac -classpath CLASSPATH% = c: \ progs \ tomcat8 \ lib \ *. java ИЛИ javac -classpath CLASSPATH% = c: \ progs \ tomcat8 \ webapps \ webserv1 \ WEB-INF \ lib \ *. java ...Звучит законно; просто стыдно, что у меня есть gettign, у пакета нет ошибки, несмотря на компиляцию обоих моих java-кодов, которые я представил в то же время ... – Shokew

+0

Из комментария, который вы сделали, я вижу проблему. Это должно быть что-то вроде этого: javac -classpath% CLASSPATH%; /gson-2.3.jar * .java – Bhaskara

+0

Спасибо, тоже, извините, ответьте так поздно (мне пришлось работать ...) Я попробую это. – Shokew

Смежные вопросы