java包在哪里存在于linux系统上?包org.json不存在使用javac时出错

时间:2011-02-26 21:13:28

标签: java javac org.json

我正在尝试使用javac编译我编写的库,我收到错误:package org.json does not exist。我的计划包括org.json.JSONArrayorg.json.JSONException

我已经在我的计算机上安装了此软件包,因为我已经成功编译了导入org.json库的Android应用程序。我非常确定我所要做的就是指定一个-classpath,但我无法找到这些文件在我的系统上的位置(ubuntu 10.10 64位sun-java6)。

我无法在自己的系统上找到这些文件,我从here下载了org.json个文件,但我无法单独编译它们,因为它们是相互依赖的。

所以我有几个问题:

  1. 有谁知道org.json在哪里 包来自android sdk 安装?
  2. 我在哪里可以找到教程 解释这些基本概念 关于编译和javac。

2 个答案:

答案 0 :(得分:3)

编译时,您需要编译的外部jar应该在类路径上。最无创的方法是将这些项添加到javac命令行,例如

javac -classpath /path/to/json.jar;. -g YourClass.java

或者更有可能在使用IDE时,将这些jar添加到IDE中项目的引用jar中。

污染全局$CLASSPATH变量通常不是一个好主意,因为这会因为你使用java所做的一切而被拉入,这可能会导致意外冲突。

答案 1 :(得分:2)

无论你喜欢什么地方。您需要做的是检查您的CLASSPATH变量,并确保它包含您的库的目录。

这是第一件事:

  $ echo $CLASSPATH

你会看到你的类路径。

现在你需要找到包含org.json的jar文件;请参阅文档,但它可能像json.jar一样简单。在大多数LINUX系统上,您只需运行

即可
 $ locate json.jar

您将获得jarfile的路径名。确保路径是CLASSPATH的一部分,你将在肥胖的城市。

哦, Sun Oracle的“Getting started”教程是最简单的开始。


实际上,看过这些文件后,它们可能无法打包成jar文件。在这种情况下,您希望将它们放在从某个顶级目录开始的源中(在此示例中为src。)

   /src
       /org/json/ ... put the json files here
       ... put your files here

当你编译时,它们都会被包含在内,这将解决所有的依赖关系。

同样,寻找第一步的地方就是教程。