4

我正在尝试使用 javac 编译我编写的库,但出现错误:package org.json does not exist. 我的程序包括org.json.JSONArrayorg.json.JSONException.

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

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

所以我有几个问题:

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

3 回答 3

3

编译时需要使用的任何外部 jar 都应该在类路径中。最非侵入性的方法是将这些项目添加到 javac 命令行,例如

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

或者如果您使用 IDE,则更有可能将这些 jar 添加到 IDE 中项目的引用 jar 中。

污染全局变量通常不是一个好主意$CLASSPATH,因为这会在你用 java 做的所有事情中被拉进来,这可能会导致意外的冲突。

于 2011-02-26T21:21:16.643 回答
2

随心所欲。您需要做的是检查您的 CLASSPATH 变量,并确保它包含您的库所在的目录。

这是第一件事:

  $ echo $CLASSPATH

你会看到你的类路径。

现在您需要找到包含 org.json 的 jar 文件;查阅文档,但它可能像json.jar. 在大多数 LINUX 系统上,您可以运行

 $ locate json.jar

您将获得 jarfile 的路径名。确保该路径是您的 CLASSPATH 的一部分,并且您将在胖城。

哦,Sun Oracle 的“入门”教程是最容易开始的地方。


实际上,查看文件后,它们可能没有打包为 jar 文件。在这种情况下,您希望将它们从某个顶级目录(src在本例中)开始放入您的源代码中。

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

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

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

于 2011-02-26T21:15:25.543 回答
-1

使用“java”命令而不是“javac”

于 2022-02-07T08:56:24.487 回答