gpt4 book ai didi

java - Tomcat 9 网络套接字示例

转载 作者:行者123 更新时间:2023-11-28 23:15:42 24 4
gpt4 key购买 nike

我正在尝试编译 (javac) Tomcat 示例,特别是echo endpoint.java examples /WEB-INF/classes 文件夹有一个echoendpoint.class 文件。我必须假设它是在tomcat9 的 zip 文件,因为我似乎无法编译它。不能找到包 javax.websocket

error: package javax.websocket does not exist

我可以在javax websocket上找到各种Oracle文档 包,但无法弄清楚在哪里下载 jar 文件(s。我是使用 jdk 1.8.0_161

我是一个老派程序员,真的不喜欢所有这些工具 尝试为我做事(eclipse,maven)。我想知道 到底发生了什么并处于控制之中。所以我正在做一切 从命令行并使用 sublime3 编辑我的环境 变量显示:

LLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\Owner\AppData\Roaming CATALINA_BASE=D:\tomcat9\apache-tomcat-9.0.7
CATALINA_HOME=D:\tomcat9\apache-tomcat-9.0.7
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=DESKTOP-NMIG0RS ComSpec=C:\WINDOWS\system32\cmd.exe
FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer
FPS_BROWSER_USER_PROFILE_STRING=Default HOMEDRIVE=C:
HOMEPATH=\Users\Owner JAVA_HOME=C:\Program Files\Java\jdk1.8.0_161
LOCALAPPDATA=C:\Users\Owner\AppData\Local
LOGONSERVER=\\DESKTOP-NMIG0RS NUMBER_OF_PROCESSORS=12
OneDrive=C:\Users\Owner\OneDrive OS=Windows_NT
Path=C:\ProgramData\Oracle\Java\javapath;C:\Program Files
(x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS
Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program
Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program
Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
(x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program
Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program
Files\PuTTY\;C:\Program Files (x86)\Skype\Phone\;C:\Program
Files\Java\jdk1.8.0_161\bin;C:\Program
Files\nodejs\;C:\Users\Owner\AppData\Local\Microsoft\WindowsApps;C:\Users\Owner\Downloads\java_ee_sdk-7u3-web\glassfish4\bin;C:\Program
Files\Microsoft VS
Code\bin;C:\Users\Owner\AppData\Roaming\npm;C:\Program Files\nodejs;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

我尝试将 D:\tomcat9\apache-tomcat-9.0.7\lib 添加到类路径中 javac 命令认为它可能会选择 tomcat-websocket.jar 或 websocket-api.jar 但这也无济于事。所以我有一个多部分 问题:

  1. 我在哪里可以获得所需的 Jar 文件?
  2. 为什么 Oracle 不在他们的 jdk 下载中包含他们所有的 jar?在我看来,它们至少应该包括所有 Javax jar 。
  3. 为什么 apache 不包含用于构建所有示例的 .bat 文件?

最佳答案

将目录添加到 CLASSPATH仅添加 .class可以在那里和子目录中找到的文件(具有特定的包结构)。如果要添加 websocket-api.jarCLASSPATH那么你必须这样做:

C:> javac -cp D:\tomcat9\apache-tomcat-9.0.7\lib\websocket.jar myClass.java

Eclipse 和 Maven 等工具已经了解这些依赖关系,如果您需要包含项目所依赖的 20、30 或 100 个不同的库,它们可以消除您将要进行的所有输入。

直接回答您的问题:

  1. Where can I get the required JAR files?

在这种特殊情况下,您正在寻找的那个实际上与 Tomcat 捆绑在一起,但您也可以 get them from Oracle , 也。问题是 Websocket API 是 Java EE API 的一部分,如果您不知道这一点,您可能不知道这就是您需要下载的内容。

  1. Why doesn't Oracle include ALL their jars in their JDK download?

因为有 大量 API,并不是每个人都需要它们。当你安装微软的 Visual Studio 时,你是否希望它同时安装 Visual COBAL++ 预处理器、Fortran# 编译器和 Microsoft Bob 模拟器?可能不是。

  1. Why doesn't apache include a .bat file for building all their examples?

因为当存在真正有用的构建工具时,它会非常不方便。 Tomcat 项目使用 Apache Ant 构建所有内容,包括 examples Web应用程序。使用 Ant 比从 .bat 文件构建要好得多。是的,这很复杂。这很复杂,因为构建 Tomcat 很复杂。 build examples Web 应用程序较少,但能够发出 <javac>了解相关 JAR 文件位置的任务比必须重新滚动整个 javac 要好得多。每次发生变化时发出命令。

如果你想编译examples方便的 web 应用程序,您应该下载 Apache Ant 并运行此命令:

C:> ant compile-webapp-examples

如果您对 Web 应用程序进行了更改,您的更改也会被编译。

值得指出的是,这并不是某些基于 Java 的阴谋的固有部分,以混淆“老派程序员”。在(几乎完全)从事 Java 工作之前,我在 C 和其他语言方面有着悠久的历史。单源文件 C 项目之后的任何内容实际上需要 makefile ,我参与的许多项目在源代码构建 Activity 中也有很多其他步骤。诸如在调用 C 编译器之前运行编译器编译器(lex/yacc 等)等。此外,大多数 C 编译器一次只编译一个文件。所以如果你有 100 个源文件,你需要在一个简单的构建脚本中有 100 行。然后,您需要链接步骤,这实际上可能有很多步骤。如果您需要 2、30 或 100 个不同的依赖库,您将需要从它们各自的来源获取它们,然后在链接步骤中提及它们(C 编译器不包括 libssllibwhatever 或,有时甚至是 libc )。所以这也不是直截了当的。

关于java - Tomcat 9 网络套接字示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49836979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com