我正在尝试使用javac编译我编写的库,我收到错误:package org.json does not exist
。我的计划包括org.json.JSONArray
和org.json.JSONException
。
我已经在我的计算机上安装了此软件包,因为我已经成功编译了导入org.json
库的Android应用程序。我非常确定我所要做的就是指定一个-classpath
,但我无法找到这些文件在我的系统上的位置(ubuntu 10.10 64位sun-java6)。
我无法在自己的系统上找到这些文件,我从here下载了org.json
个文件,但我无法单独编译它们,因为它们是相互依赖的。
所以我有几个问题:
答案 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
当你编译时,它们都会被包含在内,这将解决所有的依赖关系。
同样,寻找第一步的地方就是教程。