How to resolve "error: package javax.json does not exist" for Oracle Java 8?

How to resolve "error: package javax.json does not exist" for Oracle Java 8?

我一直在使用第 3 方库来处理 JSON,但我听说 Java 有一个,我宁愿使用它。我做了一个测试 class 除了导入包和打印 hello world 什么也没做,但是我得到了以下错误。

JsonTest.java:1: error: package javax.json does not exist
import javax.json.*;
^
1 error

我将 jdk 更新到最新版本(jdk-8u281,截至 2021 年 2 月 28 日)并再次尝试,但没有成功。然后经过一些研究,我发现 JSON 能力只存在于 Java EE,而不是 Java SE.

搞清楚后,就去这个linkHERE下载了JavaEE版,后来就不知道怎么办了。我按照说明解压缩了 zip 文件,最后得到一个名为 /glassfish5 的文件夹。我不知道如何处理它,所以我只是把它扔到包含我的其他 jdks.

的 /Java 目录中

我查找了指南和 youtube 视频,但在您解压缩文件后它们似乎都停止了。有些向您展示了如何启动 database/domain/whatever,但 none 真正告诉您如何获得使用 Java EE 的能力(因此,其中包含的 JSON 功能) .

更令人困惑的是,根据该网站,我肯定下载了 Java EE,但为什么它给我一个名为 /glassfish5 的文件夹? glassfish5 是新的 Java EE 吗?我该如何从这里前进?

这真的很迟钝,但是包含 Java EE 的 jar 文件位于该 /glassfish5 文件夹的深处。

您可以通过导航到 {download location}/glassfish5/glassfish/lib/javaee.jar 找到 Java EE jar 文件——有了这个之后,只需将它添加到您的类路径中,然后就完成了。

~

我不明白他们为什么要那样做,但是如果你四处点击并漫无目的地浏览你的 /glassfish5 文件夹,你会发现周围有很多其他的 jar 文件。

当然,如果您不想这样做,只需转到您的 /glassfish5 文件夹,转到 /bin,然后执行 ./asadmin start-database(使用 powershell 或 gitbash)。在中途,您会找到一个可能有用的 jar 文件列表。

------------------ Java Information ------------------
Java Version:    1.8.0_281
Java Vendor:     Oracle Corporation
Java home:       C:\Program Files\Java\jdk1.8.0_281\jre
Java classpath:  C:\Program Files\Java\glassfish5\glassfish\lib\asadmin\cli-optional.jar;
                 C:\Program Files\Java\glassfish5\javadb\lib\derby.jar;
                 C:\Program Files\Java\glassfish5\javadb\lib\derbytools.jar;
                 C:\Program Files\Java\glassfish5\javadb\lib\derbynet.jar;
                 C:\Program Files\Java\glassfish5\javadb\lib\derbyclient.jar