Java 打包问题
好的,所以我决定在 Java 中进一步处理我的测试文件。我决定从我的家庭 PC 上解压缩该文件夹并将其带到我的工作 PC 上。问题?当我编译时——我得到:
C:\Documents and Settings\djasnowski\Desktop\gJson\readGoogle.java:1: package com.google.gson does not exist
import com.google.gson.*;
^
C:\Documents and Settings\djasnowski\Desktop\gJson\readGoogle.java:37: cannot find symbol
symbol : class Gson
location: class readGoogle
data = new Gson().fromJson(fileString, Data.class);
^
2 errors
这很有趣。我没有动过我的文件,它在我的家用电脑上运行良好,现在我明白了。文件设置得很好。我的 com.google.gson 位于包含 Google JSON Java 文件的文件夹中,我的 googleRead.java 文件位于正确的目录中...而我的 map1.txt 也在那里...奇怪吗?我想是的。
这是我的文件:
import com.google.*;
import java.util.*;
import java.io.*;
public class readGoogle {
public static String MapTitle;
public static Data data;
public static Item item;
public static String dan;
public static FileReader fr;
public static void main(String[] args) {
try {
fr = new FileReader("map1.txt");
}catch(FileNotFoundException fne) {
fne.printStackTrace();
}
StringBuffer sb = new StringBuffer();
char[] b = new char[1000];
int n = 0;
try {
while ((n = fr.read(b)) > 0) {
sb.append(b, 0, n);
}
}catch(IOException rex) {
rex.printStackTrace();
}
String fileString = sb.toString();
try {
data = new Gson().fromJson(fileString, Data.class);
}catch (Exception er) {
er.printStackTrace();
}
System.out.println("Name of map: " + data.getTitle());
System.out.println("File of map: " + data.getName());
System.out.println("Current Map: " + data.getCurrentMap());
System.out.println("Right Map: " + data.getRightMap());
}
public static class Item {
public static String name;
public static int x;
public int y;
public static String getName() { return name; }
public static int getX() { return x; }
public int getY() { return y; }
public void setName(String name) { this.name = name; }
public void setX(int x) { this.x = x; }
public void setY(int y) { this.y = y; }
}
public static class Data {
private String name;
private String title;
private int currentMap;
private int leftMap;
private int rightMap;
private int upMap;
private int downMap;
private List<Item> items;
private int[][] map;
public String getName() { return name; }
public String getTitle() { return title; }
public int getCurrentMap() { return currentMap; }
public int getUpMap() { return upMap; }
public int getDownMap() { return downMap; }
public int getLeftMap() { return leftMap; }
public int getRightMap() { return rightMap; }
public List<Item> getItems() { return items; }
public int[][] getMap() { return map; }
public void setName(String name) { this.name = name; }
public void setTitle(String title) { this.title = title; }
public void setCurrentMap(int currentMap) { this.currentMap = currentMap; }
public void setItems(List<Item> items) { this.items = items; }
public void setMap(int[][] map) { this.map = map; }
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第一个错误是:
这意味着在
Google GSON 库 >javac
的类路径。听起来您已经将 GSON JAR 下载到您的工作 PC 上。如果您还没有这样做,请先这样做。然后,将 GSON JAR 添加到类路径并重试编译。更改类路径的具体细节取决于您的工具集——与在命令行上手动调用
javac
相比,IDE 的步骤表面上完全不同。如果您不确定如何操作类路径并且正在使用命令行,请参阅 手册 或 谷歌搜索。我无法从问题中理解您的文件布局,因此如果没有更多信息,我无法提供更具体的信息。一旦解决了这个问题,您可能会考虑使用像 Apache Maven 这样的工具来自动化依赖管理、编译和包装。
The first error was:
This means the Google GSON library was not found on
javac
's classpath. It sounds like you've already downloaded the GSON JAR to your work PC. Do that first if you haven't already.Then, add the GSON JAR to the classpath and retry the compile. The specifics of changing your classpath depend your toolset -- the steps are superficially quite different for an IDE compared to hand-invocation of
javac
on the command-line. If you're not sure how to manipulate the classpath and you are using the command-line, then consult the manual or Google it. I couldn't understand your file layout from the question, so I can't be any more specific without more information.Once you solve this problem, you might consider using a tool like Apache Maven to automate dependency management, compilation, and packaging.