`

将 ActiveX 控件集成到 SWT 应用程序

阅读更多
通过使用标准窗口小部件工具箱(Standard Widget Toolkit,SWT),您可以开发独立的 Java 应用程序,它看起来和操作起来类似本机应用程序。如果您花了很多时间来开发用于 Windows 的 Java 客户机端应用程序,那么您或许希望将一些本机 Windows 组件集成到您的应用程序中。SWT,作为正在开发中的 Eclipse 项目的一部分,通过为您提供在独立 SWT 应用程序中方便地利用和集成 ActiveX 控件的方法来实现这一需求。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

多年以来,Java 语言已经“统治”了基于服务器的应用程序的开发领域。在该语言开发早期,人们将它吹捧为开发跨平台的桌面应用程序的解决方案。遗憾的是,事实上它从未符合过这种大肆宣传。在最终用户和开发人员社区需要抽象窗口工具箱(Abstract Window Toolkit,AWT)之外的一些其它功能之后,Sun Microsystems 引入了 Java 基础类(Java Foundation Classes,JFC)(也称为 Swing)来诱使开发人员重新考虑将 Java 语言用于开发 GUI 应用程序。虽然 Swing 确实为开发客户机端的应用程序提供了一个成熟且经证实的模型,但它仍缺少本机应用程序的可视外观和操作。

在开发和引入标准窗口小部件工具箱(SWT)之前,业内权威人士和开发人员都宣告 Java 语言不适合开发桌面应用程序。SWT 通过为开发人员提供一个创建应用程序的框架(所创建的应用程序完全逼真地模仿本机应用程序),正开始给客户机端 Java 的时机带来新气象。与其前辈(例如 AWT 和 JFC)不同,SWT 给开发人员提供了一个与平台无关的 API,该 API 与操作系统的本机窗口环境紧密地集成在一起。虽然,传统上认为 Eclipse 项目是 Java 的开放源码集成开发环境(IDE),但是该项目涉及的范围更广。在 Eclipse 的网站首页上,将 Eclipse 描述成“……一种通用工具平台 — 只不过是一个开放的可扩展 IDE,并没什么特别之处。”

虽然在开发本文提供的样本应用程序期间使用了 Eclipse,但是我们将着重演示如何在独立应用程序的上下文中使用 ActiveX 控件。有关 Eclipse 项目的更多信息和背景知识,请参阅本文末尾的 参考资料

PDF 查看器应用程序

在查看如何将 ActiveX 控件集成到 SWT 应用程序的代码和实现细节之前,让我们查看一下所包含的样本应用程序的用途和结构。该应用程序是一个简单的 PDF 查看器,它允许用户使用 Adobe 的 Acrobat Reader 控件来查看 PDF 文件并与之交互。用户可以在 SWT 应用程序中浏览其硬盘驱动器、定位文件和查看 PDF 文档,如 图 1中所示。

图 1. 样本应用程序:在 Microsoft Windows XP 上运行的 PDF 查看器
PDF 查看器





环境需求

可以使用 参考资料中的链接下载样本 PDF 查看器应用程序。要测试 PDF 查看器应用程序,环境必须满足下列最低需求:

  • Microsoft Windows 操作系统
  • 安装了 Java 2 SDK,标准版 1.4 或更高版本(请参阅 参考资料以获取下载链接)
  • 安装了 Apache Ant 1.5.2 或更高版本(请参阅 参考资料以获取下载链接)
  • 安装了 Adobe Acrobat Reader 5.0

虽然已经费心使 Ant 构建脚本可以跨平台使用,但是只在 Microsoft Windows XP 上测试和验证了 PDF 查看器应用程序。让我们从安装和设置样本应用程序开始吧。





安装和构建 PDF 查看器应用程序

要安装和构建 PDF 查看器应用程序,请完成下列步骤:

  1. 使用 参考资料中的链接下载源代码软件包。
  2. pdfviewer.zip 文件解压缩到临时目录中。
  3. 在新创建的目录中执行下面这个命令: ant clean
  4. 在新创建的目录中执行下面这个命令: ant

如果您的环境满足需求并且配置正确,那么您应当会看到类似于下面这样的内容:


Buildfile: build.xml

init:
    [mkdir] Created dir: D:\PDFViewer\dist

compile-common:

compile-module:
    [echo] Compiling ...
    [mkdir] Created dir: D:\PDFViewer\build
    [mkdir] Created dir: D:\PDFViewer\build\classes
    [javac] Compiling 5 source files to D:\PDFViewer\build\classes

package-common:
      [jar] Building jar: D:\PDFViewer\dist\pdfviewer.jar

default:

BUILD SUCCESSFUL





使用 ActiveX 控件

既然我们已经介绍了 PDF 查看器应用程序的基础知识,那就让我们研究一下如何在 SWT 应用程序中集成和使用 ActiveX 控件。因为我们这里的目的是讨论 ActiveX 集成,所以我们将不研究如何创建独立的 SWT 应用程序以及如何在 Microsoft Windows 中使用 ActiveX 控件。有关如何在 Eclipse Workbench 之外使用 SWT 组件的更多信息和背景知识,请参阅 Adrian Van Emmenis 的由三部分所组成的文章系列,本文末尾的 参考资料这一节中突出显示了这些文章。

清单 1 概述了 PDFViewer 类的基本结构并演示了如何将 ActiveX 控件集成到 SWT 应用程序。


清单 1. PDFViewer 类

1   public class PDFViewer extendsApplicationWindow
2   {
3      private OleControlSite site;
4      private OleAutomation auto;
5
6      public PDFViewer()
7      {
8         super(null);
9         this.addMenuBar();
10      }
11
12      protected ControlcreateContents(Composite parent)
13      {
14         Shell shell = this.getShell();
15         shell.setText("PDFViewer");
16         shell.setSize(500, 450);
17
18         OleFrame frame = new OleFrame(shell, SWT.NONE);
19
20         try
21         {
22            site = new OleControlSite(frame,SWT.NONE, "PDF.PdfCtrl.5");
23            auto = new OleAutomation(site);
24            
25   ...

让我们逐步研究这一代码片段:

  1. 每次应用程序启动时,都会创建 PDFViewer 类的新实例。
  2. 如第 3 行和第 4 行所示,我们需要定义两个对象: OleControlSiteOleAutomationOleControlSite 对象变量处理与 ActiveX 控件的交互。 OleAutomation 对象允许开发人员访问特性并执行 ActiveX 控件所提供的命令。
  3. 在第 18 行上,定义了 OleFrame 对象。该对象是 ActiveX 控件的容器,并管理该控件的生命周期。
  4. 在第 22 行上,通过使用两个参数来实例化 site 变量:第一个参数包含对 OleFrame 的引用,第二个参数包含标识 ActiveX 控件的字符串。程序标识符(可在 Windows 注册表中找到)在 Microsoft Windows 中唯一地标识该控件。
  5. 在第 23 行上,使用对 OleControlSite 变量的引用来实例化 site 变量。




选择 PDF 文档

在用户可以查看 PDF 文档之前,用户需要从其工作站选择 PDF 文档。下面 清单 2中的代码说明了为最终用户打开一个文件对话框所必需的对象和方法。


清单 2. OpenAction 类

0   ...
1   public class PDFViewer extends ApplicationWindow
2   {
3      private OleControlSite site;
4      private OleAutomation auto;
5
6      public PDFViewer()
7      {
8         super(null);
9         this.addMenuBar();
10      }
11
12      protected Control createContents(Composite parent)
13      {
14         Shell shell = this.getShell();
15         shell.setText("PDF Viewer");
16         shell.setSize(500, 450);
17
18         OleFrame frame = new OleFrame(shell, SWT.NONE);
19
20         try
21         {
22            site = new OleControlSite(frame, SWT.NONE, "PDF.PdfCtrl.5");
23            auto = new OleAutomation(site);
24            
25   ...

让我们简要地研究这一代码片段:

  1. 每当用户从菜单栏选择“Open...”时,都要执行第 13 行上的 run 方法。
  2. 如第 15 行和第 16 行所示,创建一个 FileDialog 对象。如 图 2 所示,该对象向用户显示一个本机文件对话框。
  3. 第 18 行构造一个字符串,该字符串包含 PDF 文档在用户工作站上的位置。
  4. 第 20 行将 window 对象的数据类型转换成 PDFViewer 对象。
  5. 第 22 行执行 loadFile 方法并传入所选 PDF 文档的位置。在接下来的几节中,我们将更详细地研究 loadFile 方法。

图 2. Open File 对话框
Open File 对话框





列出 ActiveX 的命令

在讨论如何在查看器应用程序中显示 PDF 文档之前,了解在 Adobe Acrobat Reader Active X( PDF.PdfCtrl.5 )组件中实际上可以使用哪些命令是有用的。样本代码软件包包括了由 IBM 开发的类。该类列出了 ActiveX 控件所公开的所有公用命令。

要枚举用于 PDF.PdfCtrl.5 控件的命令,请在 PDFViewer 目录中执行下面的命令: ant activex

如果您的环境配置正确,那么您应当会看到类似于下面这样的内容:


...
     [java]Functions for PDF.PdfCtrl.5 :
       
     [java]METHOD (id = 2) :
     [java]     Signature   : boolean LoadFile([] String fileName)
     [java]     Description : null
     [java]     Help File   : null
       
     [java]METHOD (id = 3) :
     [java]     Signature   : void setShowToolbar([] boolean On)
     [java]     Description : null
     [java]     Help File   : null
       
     [java]METHOD (id = 4) :
     [java]     Signature   : void gotoFirstPage()
     [java]     Description : null
     [java]     Help File   : null
...

要查看用于任何其它 ActiveX 控件的命令,只要编辑包含在源代码中的 build.xml 文件,并用一些其它 ActiveX 的程序标识符替换该类的参数。下面的 Ant 目标说明了要插入控件的程序标识符的位置。


清单 3. 编辑 build.xml 文件

...
      <target name="activex" depends="package-common">

            <java classname="Main" fork="true">

                     <jvmarg value="-Djava.library.path=${eclipse.dir}windows"/> 
                      <classpath>
                        <pathelement location="${dist.dir}/pdfviewer.jar"/>
                              <fileset dir="${eclipse.dir}" includes="*.jar"/>
                              <fileset dir="${eclipse.dir}windows" includes="*.jar"/>
                      </classpath>

                      <arg value="<insert some program identifier>"/> 

            </java>

      </target> 
...

从该类输出的第一个命令是 LoadFile。让我们研究一下如何在 PDF 查看器应用程序中应用这个命令。





执行 ActiveX 命令

一旦用户选择了一个 PDF 文档, PDFViewer 类就需要执行 ActiveX 控件中所公开的命令。下面 清单 4中的代码说明了使 ActiveX 控件装入用户所选的 PDF 文档所需的对象和方法。


清单 4. PDFViewer 类
0   ...
1   public void showPdfControl()
2   {
3      site.doVerb(OLE.OLEIVERB_SHOW);
4   }
5
6   public void loadFile(String file)
7   {
8      showPdfControl();
9
10      int[] rgdispid = auto.getIDsOfNames(newString[]{"LoadFile"});
11      int dispIdMember = rgdispid[0];
12
13      Variant[] rgvarg = new Variant[1]; 
14      rgvarg[0] = new Variant(file);
15
16      Variant pVarResult =auto.invoke(dispIdMember,rgvarg);
17   }
18...

让我们研究这一代码片段:

  1. 用户选择 PDF 文件之后,执行第 6 行上的 loadFile 方法。
  2. 第 8 行调用 showPdfControl 方法。必须使用 doVerb 命令激活 ActiveX 控件之后,该控件在应用程序中才可见。在 Eclipse 网站上标题为“ActiveX Support In SWT”的文章中可以找到动词的完整清单和概述(请参阅 参考资料以获取该文章的链接)。
  3. 第 10 行到第 16 行调用 ActiveX 控件中的 LoadFile 命令。有关如何使用在这些行中用到的每个对象的更多信息,请参阅 参考资料中的链接以获取 org.eclipse.swt.ole.win32 JavaDoc。




运行 PDF 查看器应用程序

要测试和运行 PDF 查看器应用程序,请完成下列步骤:

  1. 在将源代码解包的目录中执行下面这个命令: ant run
  2. 执行 Ant 脚本之后,应当会出现 PDF 查看器应用程序。
  3. 从 File 菜单选择“Open...”,以从工作站选择 PDF 文件。呈现所选的 PDF 文档。





结束语

SWT 库向 Java 开发人员提供一种功能强大的机制,使 Microsoft Windows ActiveX 控件集成到高度交互的客户机端应用程序。有了 SWT 对 ActiveX 控件和 OLE 文档的支持,研究如何创建外观极棒的且集成了本机窗口小部件和组件的应用程序是令人激动的。






参考资料





关于作者

Jeff Gunther 是 Intalgent Technologies的总经理和创始人,这家公司是新兴的软件产品和解决方案供应商,其产品和解决方案采用 Java 2 企业版和 Lotus Notes/Domino 平台。Jeff 从早期的“Mosaic”(最早的 Internet Web 浏览器)出现之前的时代就投身于因特网行业。他拥有软件生命周期所有方面的专业经验,包括 Java/J2EE、DHTML、XML/XSLT、数据库设计和手持设备方面的特殊软件开发专业经验。可以通过 jeff.gunther@intalgent.com与他联系。


from developerWorks
中国
分享到:
评论
1 楼 chenhj520 2011-05-24  
我执行ant
F:\pdfviewer\PDFViewer>ant activex
Buildfile: F:\pdfviewer\PDFViewer\build.xml

init:

compile-common:

compile-module:
     [echo] Compiling ...

package-common:

activex:
     [java] Unable to open type library for PDF.PdfCtrl.5

BUILD SUCCESSFUL
Total time: 2 seconds




Unable to open type library for PDF.PdfCtrl.5
显示无法打开PDF.PdfCtrl.5 不知道是那里设置不正确?


执行ant run 时
F:\pdfviewer\PDFViewer>ant run
Buildfile: F:\pdfviewer\PDFViewer\build.xml

init:

compile-common:

compile-module:
     [echo] Compiling ...

package-common:

run:
     [java] org.eclipse.swt.SWTException: Class ID not found in registry result = -2147221005
     [java]     at org.eclipse.swt.ole.win32.OLE.error(OLE.java:317)
     [java]     at org.eclipse.swt.ole.win32.OleClientSite.getClassID(OleClientSite.java:629)
     [java]     at org.eclipse.swt.ole.win32.OleContrFailed to create <<Acrobat>> : Class ID not found in registry result = -21472
21005olSite.<init>(OleControlSite.java:87)
     [java]     at com.intalgent.pdfviewer.PDFViewer.createContents(PDFViewer.java:44)
     [java]     at org.eclipse.jface.window.Window.create(Window.java:302)
     [java]     at org.eclipse.jface.window.Window.open(Window.java:552)
     [java]     at com.intalgent.pdfviewer.PDFViewer.main(PDFViewer.java:69)
     [java] 


Class ID not found in registry result = -2147221005

不能注册这个ID,不知道这个问题怎么解决?

相关推荐

    软考-考生常见操作说明-202405101400-纯图版.pdf

    软考官网--2024常见操作说明:包括如何绘制网络图、UML图、表格等 模拟作答系统是计算机技术与软件专业技术资格(水平)考试的电子化考试系统界面、作答过程的仿真系统,为各级别、各资格涉及输入和页面显示的部分题型提供体验性练习。

    setuptools-34.0.3.zip

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于遗传优化GA的三目标优化仿真【包括程序,注释,操作步骤】

    1.版本:matlab2022A。 2.包含:程序,中文注释,仿真操作步骤(使用windows media player播放)。 3.领域:遗传优化 4.仿真效果:仿真效果可以参考博客同名文章《基于遗传优化GA的三目标优化仿真》 5.内容:基于遗传优化GA的三目标优化仿真。遗传算法(Genetic Algorithm, GA)是一种模拟自然选择和遗传机制的全局搜索优化方法,广泛应用于解决复杂优化问题,包括具有多个目标的优化问题,即多目标遗传算法(Multi-Objective Genetic Algorithm, MOGA)。在这里,将三个目标函数进行统一的编码,通过单目标遗传优化的方式,同步求解三个目标函数的最优值。 6.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。

    基于单通道脑电信号的自动睡眠分期研究.zip

    本项目使用了Sleep-EDF公开数据集的SC数据进行实验,一共153条整晚的睡眠记录,使用Fpz-Cz通道,采样频率为100Hz 整套代码写的较为简洁,而且有添加相应的注释,因此进行分享,而且不仅仅说是睡眠分期,也可以作为学习如何使用神经网络去进行时序数据分类问题的一个入门项目,包括怎么用GRU、LSTM和Attention这些经典网络结构。 网络结构(具体可查看network.py文件): 网络整体结构类似于TinySleepNet,对RNN部分进行了修改,增加了双向RNN、GRU、Attention等网络结构,可根据参数进行调整选择。 定义了seq_len参数,可以更灵活地调整batch_size与seq_len。 数据集加载(具体可查看dataset.py文件) 直接继承自torch的Dataset,并定义了seq_len和shuffle_seed,方便调整输入,并复现实验。 训练(具体可查看train.py文件):

    setuptools-27.3.1.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    setuptools-12.0-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    setuptools-11.0.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    setuptools-5.8-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    5.3.1_1二叉树的先中后序遍历.mp420240404-134540.png

    5.3.1_1二叉树的先中后序遍历.mp420240404-134540.png

    setuptools-1.3.1-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    setuptools-40.1.1-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于JSP在线图书销售商城网站项目源码.zip

    这个是一个JSP在线图书销售商城网站项目,管理员角色包含以下功能:管理员登录,管理员账号管理,会员用户管理,订单管理,图书分类管理,图书管理,新闻管理,评价管理等功能。用户角色包含以下功能:用户首页,最新图书查看,会员登录注册,商城公告新闻查看,查看图书详情,查看评论以及发表评论,查看购物车,查看我的订单等功能。

    基于springboot的就业信息管理系统

    开发语言:Java JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.6/5.7(或8.0) 数据库工具:Navicat 开发软件:idea 依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行 2.需要远程帮忙部署项目,需要额外付费 3.本项目有演示视频,如果需要观看,请联系我v:19306446185 4.调试过程中可帮忙安装IDEA,eclipse,MySQL,JDK,Tomcat等软件 重点: 需要其他Java源码联系我,更多源码任你选,你想要的源码我都有! https://img-blog.csdnimg.cn/direct/e73dc0ac8d27434b86d886db5a438c71.jpeg

    setuptools-38.6.0-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    毕设-基于STM32的物联网农业监测与控制系统源码.zip

    毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip毕设-基于STM32的物联网农业监测与控制系统源码.zip

    基于STM32F4系列单片机,开发了一款手持热成像仪.zip

    基于单片机的系统

    JAVA五子棋手机网络对战游戏的设计与实现(源代码).zip

    JAVA五子棋手机网络对战游戏的设计与实现(源代码)

    setuptools-31.0.0-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    setuptools-10.0-py2.py3-none-any.whl

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于HT单片机的无人送货与售货智能机器人.zip

    基于单片机的系统

Global site tag (gtag.js) - Google Analytics