Java 中文官方教程 2022 版(十二)(2)

简介: Java 中文官方教程 2022 版(十二)

Java 中文官方教程 2022 版(十二)(1)https://developer.aliyun.com/article/1486357

解决常见小程序问题

原文:docs.oracle.com/javase/tutorial/deployment/applet/problemsindex.html

本节涵盖了在编写 Java 小程序时可能遇到的一些常见问题。每个问题后面都列出了可能的原因和解决方案。

问题: 我的小程序没有显示。

  • 检查 Java 控制台日志以查看错误。
  • 检查小程序的 Java 网络启动协议(JNLP)文件的语法。不正确的 JNLP 文件是失败的最常见原因,而没有明显的错误。
  • 如果使用部署工具包的runApplet函数部署,请检查 JavaScript 语法。有关详细信息,请参阅部署小程序。

问题: Java 控制台日志显示 java.lang.ClassNotFoundException。

  • 确保你的 Java 源文件编译正确。
  • 如果使用标签部署,请检查archive属性中小程序 JAR 文件的路径是否准确。
  • 如果使用 JNLP 文件启动,请检查 JNLP 文件中jar标签中的路径。
  • 确保小程序的 JAR 文件、JNLP 文件和网页位于正确的目录中,并准确引用彼此。
  • 问题: 我曾经能够构建代码,但现在即使没有编译错误,构建也失败了。

    • 关闭浏览器并重新运行构建。浏览器很可能锁定了 JAR 文件,导致构建过程无法重新生成 JAR 文件。

    问题: 当我尝试加载一个包含小程序的网页时,我的浏览器会在没有任何警告的情况下将我重定向到www.java.com

    • 网页上的小程序很可能是使用部署工具包脚本部署的。小程序可能需要比客户端当前存在的 Java 运行时环境软件版本更高的版本。检查小程序网页中runApplet函数的minimumVersion参数。有关详细信息,请参阅部署小程序。

    问题: 我修复了一些错误并重新构建了我的小程序源代码。当我重新加载小程序的网页时,我的修复并没有显示出来。

    • 你可能正在查看之前缓存的小程序版本。关闭浏览器。打开 Java 控制面板并删除临时互联网文件。这将从缓存中删除你的小程序。尝试重新查看你的小程序。

    问题和练习:Applets

    原文:docs.oracle.com/javase/tutorial/deployment/applet/QandE/questions.html

    问题

    1. 一个 applet 可以继承哪些类?
    2. 你如何使用start()方法?
    3. 真或假:一个 applet 可以与互联网上的任何主机建立网络连接。
    4. 如何从 applet 的代码中获取在 JNLP 文件中指定的参数的值?
    5. 哪个类使 applets 能够与 applet 网页中的 JavaScript 代码交互?
    6. 真或假:Applets 可以修改父网页的内容。

    练习

    1. Exercise applet 的父网页有一个名为memberId的 JavaScript 变量。写出在 applet 的start方法中将memberId的值设置为"123489"的代码。

    检查你的答案。

    教程:Java Web Start

    原文:docs.oracle.com/javase/tutorial/deployment/webstart/index.html

    Java Web Start 软件提供了一键启动功能,可以启动功能齐全的应用程序。用户可以下载和启动应用程序,例如完整的电子表格程序或互联网聊天客户端,而无需经历冗长的安装过程。

    使用 Java Web Start 软件,用户可以通过在网页中点击链接来启动 Java 应用程序。该链接指向一个 Java 网络启动协议(JNLP)文件,该文件指示 Java Web Start 软件下载、缓存和运行应用程序。

    Java Web Start 软件为 Java 开发人员和用户提供了许多部署优势:

    • 使用 Java Web Start 软件,您可以将单个 Java 应用程序放在 Web 服务器上,以便在各种平台上部署,包括 Windows、Linux 和 Solaris。
    • Java Web Start 软件支持多个同时运行的 Java 平台版本。应用程序可以请求特定版本的 Java 运行时环境(JRE)软件,而不会与其他应用程序的需求发生冲突。
    • 用户可以创建桌面快捷方式以在浏览器外启动 Java Web Start 应用程序。
    • Java Web Start 软件利用了 Java 平台固有的安全性。默认情况下,应用程序对本地磁盘和网络资源的访问受到限制。
    • 使用 Java Web Start 软件启动的应用程序会在本地缓存以提高性能。
    • Java Web Start 应用程序的更新会在用户从桌面独立运行应用程序时自动下载。

    Java Web Start 软件作为 JRE 软件的一部分安装。用户无需单独安装 Java Web Start 软件或执行其他任务即可使用 Java Web Start 应用程序。

    其他参考资料

    本课程旨在帮助您开始使用 Java Web Start 技术,并不包括所有可用文档。有关 Java Web Start 技术的更多信息,请参阅以下内容:

    开发 Java Web Start 应用程序

    原文:docs.oracle.com/javase/tutorial/deployment/webstart/developing.html

    使用基于组件的架构设计的软件可以轻松地开发和部署为 Java Web Start 应用程序。考虑具有基于 Swing 的图形用户界面(GUI)的 Java Web Start 应用程序的示例。通过基于组件的设计,GUI 可以使用更小的构建块或组件构建。以下是用于创建应用程序 GUI 的一般步骤:

    • 创建一个MyTopJPanel类,它是JPanel的子类。在MyTopJPanel类的构造函数中布局应用程序的 GUI 组件。
    • 创建一个名为MyApplication的类,它是JFrame类的子类。
    • MyApplication类的main方法中,实例化MyTopJPanel类,并将其设置为JFrame的内容窗格。

    以下各节通过使用 Dynamic Tree Demo 应用程序更详细地探讨了这些步骤。如果您对 Swing 不熟悉,请参阅使用 Swing 创建 GUI 以了解更多关于使用 Swing GUI 组件的信息。

    单击以下启动按钮以启动 Dynamic Tree Demo 应用程序。

    //https://docs.oracle.com/javase/tutorialJWS/samples/deployment/dynamictree_webstartJWSProject/dynamictree_webstart.jnlp”; deployJava.createWebStartLaunchButton(url, ‘1.7.0’); //]]>


    注意: 如果您看不到示例运行,请确保在浏览器中启用 JavaScript 解释器,以便部署工具包脚本能够正常运行。


    创建顶级JPanel

    创建一个JPanel的子类。这个顶级JPanel充当所有其他 UI 组件的容器。在下面的示例中,DynamicTreePanel类是最顶层的JPanelDynamicTreePanel类的构造函数调用其他方法来正确创建和布局 UI 控件。

    public class DynamicTreePanel extends JPanel implements ActionListener {
        private int newNodeSuffix = 1;
        private static String ADD_COMMAND = "add";
        private static String REMOVE_COMMAND = "remove";
        private static String CLEAR_COMMAND = "clear";
        private DynamicTree treePanel;
        public DynamicTreePanel() {
            super(new BorderLayout());
            //Create the components.
            treePanel = new DynamicTree();
            populateTree(treePanel);
            JButton addButton = new JButton("Add");
            addButton.setActionCommand(ADD_COMMAND);
            addButton.addActionListener(this);
            JButton removeButton = new JButton("Remove");
            ....
            JButton clearButton = new JButton("Clear");
            ...
            //Lay everything out.
            treePanel.setPreferredSize(
                new Dimension(300, 150));
            add(treePanel, BorderLayout.CENTER);
            JPanel panel = new JPanel(new GridLayout(0,3));
            panel.add(addButton);
            panel.add(removeButton); 
            panel.add(clearButton);
            add(panel, BorderLayout.SOUTH);
        }
        // ...
    }

    创建应用程序

    对于具有基于 Swing 的 GUI 的应用程序,请创建一个是javax.swing.JFrame的子类的类。

    在应用程序的main方法中,实例化您的顶级JPanel类,并将其设置为JFrame的内容窗格。DynamicTreeApplication类的main方法在 AWT 事件分发线程中调用createGUI方法。

    package webstartComponentArch;
    import javax.swing.JFrame;
    public class DynamicTreeApplication extends JFrame {
        public static void main(String [] args) {
            DynamicTreeApplication app = new DynamicTreeApplication();
            app.createGUI();
        }
        private void createGUI() {
            //Create and set up the content pane.
            DynamicTreePanel newContentPane = new DynamicTreePanel();
            newContentPane.setOpaque(true); 
            setContentPane(newContentPane);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            pack();
            setVisible(true);
        }    
    }

    将核心功能与最终部署机制分离的好处

    另一种创建应用程序的方法是去掉抽象层(单独的顶级JPanel)并在应用程序的main方法中布局所有控件。直接在应用程序的main方法中创建 GUI 的缺点是,如果以后选择将功能部署为小程序,部署将更加困难。

    在动态树演示示例中,核心功能被分离到DynamicTreePanel类中。现在,将DynamicTreePanel类放入JApplet中并将其部署为小程序变得非常简单。

    因此,为了保持可移植性并保持部署选项开放,请按照本主题中描述的基于组件的设计方法进行操作。

    下载源代码以进一步进行动态树演示示例的实验。

    检索资源

    docs.oracle.com/javase/tutorial/deployment/webstart/retrievingResources.html

    使用getResource方法从 JAR 文件中读取资源。例如,以下代码从 JAR 文件中检索图像。

    // Get current classloader
    ClassLoader cl = this.getClass().getClassLoader();
    // Create icons
    Icon saveIcon  = new ImageIcon(cl.getResource("images/save.gif"));
    Icon cutIcon   = new ImageIcon(cl.getResource("images/cut.gif"));

    该示例假设应用程序的 JAR 文件中存在以下条目:

    • images/save.gif
    • images/cut.gif

    部署 Java Web Start 应用程序

    原文:docs.oracle.com/javase/tutorial/deployment/webstart/deploying.html

    要部署您的 Java Web Start 应用程序,首先编译源代码,将其打包为 JAR 文件,并对 JAR 文件进行签名。

    Java Web Start 应用程序通过使用 Java 网络启动协议(JNLP)启动。因此,您必须创建一个 JNLP 文件来部署您的应用程序。

    部署工具包脚本包含有用的 JavaScript 函数,可用于在网页上部署 Java Web Start 应用程序。

    如果您对这些部署技术不熟悉,请在继续之前查看深入部署课程。

    以下是一些逐步说明,用于打包和部署您的应用程序。动态树演示应用程序用于说明 Java Web Start 应用程序的部署。您可能希望设置构建脚本来执行以下一些步骤。

    单击以下启动按钮以启动动态树演示应用程序。

    //https://docs.oracle.com/javase/tutorialJWS/samples/deployment/dynamictree_webstartJWSProject/dynamictree_webstart.jnlp” deployJava.createWebStartLaunchButton(url, ‘1.7.0’); //]]>


    注意: 如果您看不到示例运行,请确保在浏览器中启用 JavaScript 解释器,以便部署工具包脚本能够正常运行。


    1. 编译您的应用程序的 Java 代码,并确保所有类文件和资源(如图像)位于单独的目录中。
      在动态树演示应用程序中,编译后的类文件放置在build/classes/webstartComponentArch目录中。
    2. 创建一个包含您的小程序所需的任何 JAR 文件清单属性的文本文件。
      对于 DynamicTree 演示小程序,创建一个名为mymanifest.txt的文件,放在build/classes目录中,并添加PermissionsCodebaseApplication-Name属性。该小程序不需要访问用户系统资源,因此对于权限使用sandbox。对于代码库,请使用将加载示例的域,例如myserver.com。将以下属性添加到mymanifest.txt文件中。
    Permissions: sandbox
    Codebase: myserver.com
    Application-Name: Dynamic Tree Demo
    1. 其他清单属性可用于限制小程序仅使用受信任的代码,并为需要在特权 Java 代码和沙箱 Java 代码之间进行调用,或具有调用小程序的 JavaScript 代码的小程序提供安全性。请参阅使用清单属性增强安全性课程,了解更多可用的清单属性。
    2. 创建一个包含应用程序类文件和资源的 JAR 文件。在上一步中创建的mymanifest.txt文件中包含清单属性。
      例如,以下命令将在build/classes/webstartComponentArch目录中的类文件和build/classes目录中的清单文件创建一个 JAR 文件。
    % cd build/classes
    % jar cvfm  DynamicTreeDemo.jar  mymanifest.txt webstartComponentArch
    1. 参见在 JAR 文件中打包程序课程,了解有关创建和使用 JAR 文件的更多信息。
    2. 为您的小程序签署 JAR 文件并为签名加上时间戳。使用由受信任的证书颁发机构颁发的有效、当前的代码签名证书,向您的用户提供确保可以安全运行小程序的保证。
      有关更多信息,请参见签署 JAR 文件课程。
      如果您想要为安全性使用已签名的 JNLP 文件,请按照下一步中的说明创建 JNLP 文件,并在签名 JAR 文件之前将其包含在 JAR 文件中。有关详细信息,请参阅已签名的 JNLP 文件中的 Java 平台标准版部署指南。
    3. 创建一个描述应用程序如何启动的 JNLP 文件。
      以下是用于启动动态树演示应用程序的 JNLP 文件。对于此应用程序,不会请求权限,因此它在安全沙箱中运行。dynamictree_webstart.jnlp的源代码如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp spec="1.0+" codebase=
    "https://docs.oracle.com/javase/tutorialJWS/samples/deployment/webstart_ComponentArch_DynamicTreeDemo" 
        href="dynamictree_webstart.jnlp">
        <information>
            <title>Dynamic Tree Demo</title>
            <vendor>Dynamic Team</vendor>
        </information>
        <resources>
            <!-- Application Resources -->
            <j2se version="1.7+"
                  href="http://java.sun.com/products/autodl/j2se"/>
            <jar href="DynamicTreeDemo.jar"
                main="true" />
        </resources>
        <application-desc
             name="Dynamic Tree Demo Application"
             main-class=
               "webstartComponentArch.DynamicTreeApplication"
             width="300"
             height="300">
         </application-desc>
         <update check="background"/>
    </jnlp> 
    1. JNLP 文件的结构描述了 JNLP 文件的语法和选项。

    1. 注意: 在部署将在至少 Java SE 6 更新 18 版本或更高版本上运行的 Java Web Start 应用程序时,codebasehref 属性是可选的。在部署将在早期版本的 Java Runtime Environment 软件上运行的 Java Web Start 应用程序时,必须指定 codebasehref 属性。

    1. 创建 HTML 页面,从中启动您的应用程序。调用部署工具包函数来部署 Java Web Start 应用程序。
      在示例中,动态树演示应用程序部署在JavaWebStartAppPage.html中。
    <body>
        <!-- ... -->
        <script src=
          "https://www.java.com/js/deployJava.js"></script>
        <script>
            // using JavaScript to get location of JNLP
            // file relative to HTML page
            var dir = location.href.substring(0,
                location.href.lastIndexOf('/')+1);
            var url = dir + "dynamictree_webstart.jnlp";
            deployJava.createWebStartLaunchButton(url, '1.7.0');
        </script>
        <!-- ... -->
    </body>
    1. 如果您不确定最终用户的浏览器中是否启用了 JavaScript 解释器,您可以通过直接创建指向 JNLP 文件的链接来部署 Java Web Start 应用程序,如下所示:
    <a href="/*absolute path to JNLP file*/dynamictree_webstart.jnlp">Launch Notepad Application</a>
    1. 如果您通过直接链接部署 Java Web Start 应用程序,则无法利用部署工具包函数提供的额外检查。有关详细信息,请参阅部署 Java Web Start 应用程序中的深入部署课程。
    2. 将应用程序的 JAR 文件、JNLP 文件和 HTML 页面放在适当的文件夹中。
      对于这个示例,将DynamicTreeDemo.jardynamictree_webstart.jnlpJavaWebStartAppPage.html放在本地计算机或 Web 服务器上的同一目录中。最好使用 Web 服务器。要从本地计算机运行,必须将应用程序添加到例外站点列表中,该列表可从 Java 控制面板的安全选项卡中管理。
    3. 在浏览器中打开应用程序的 HTML 页面以查看应用程序。在提示时同意运行应用程序。检查 Java 控制台日志以查看错误和调试消息。

    下载源代码以进一步尝试动态树演示示例。

    设置 Web 服务器

    原文:docs.oracle.com/javase/tutorial/deployment/webstart/settingUpWebServerMimeType.html

    您可能需要配置您的 web 服务器来处理 Java 网络启动协议(JNLP)文件。如果 web 服务器没有正确设置,当您单击 JNLP 文件的链接时,Java Web 启动应用程序将无法启动。

    配置 web 服务器,使具有.jnlp扩展名的文件设置为application/x-java-jnlp-file MIME 类型。

    设置 JNLP MIME 类型的具体步骤将根据 web 服务器的不同而有所变化。例如,要配置 Apache web 服务器,您应该在mime.types文件中添加以下行。

    application/x-java-jnlp-file JNLP

    对于其他 web 服务器,请查阅文档以获取设置 MIME 类型的说明。

    运行 Java Web Start 应用程序

    原文:docs.oracle.com/javase/tutorial/deployment/webstart/running.html

    用户可以通过以下方式运行 Java Web Start 应用程序:

    • 从浏览器中运行 Java Web Start 应用程序
    • 从 Java 缓存查看器中运行 Java Web Start 应用程序
    • 从桌面中运行 Java Web Start 应用程序

    注意: 要运行使用 Java Web Start 技术部署的应用程序,您必须具有兼容版本的 Java 运行时环境(JRE)软件。不需要完整的 Java 开发工具包(JDK)。


    从浏览器中运行 Java Web Start 应用程序

    您可以通过点击应用程序的 JNLP 文件的链接来从浏览器中运行 Java Web Start 应用程序。以下文本是指向 JNLP 文件的链接的示例。

    <a href="/some/path/Notepad.jnlp">Launch Notepad Application</a>

    Java Web Start 软件根据 JNLP 文件中的指令加载和运行应用程序。

    立即尝试:运行记事本

    从 Java 缓存查看器中运行 Java Web Start 应用程序

    如果您至少使用的是 Java 平台标准版 6 或更高版本,则可以通过 Java 缓存查看器运行 Java Web Start 应用程序。

    当 Java Web Start 软件首次加载应用程序时,应用程序的 JNLP 文件中的信息将存储在本地 Java 缓存查看器中。要再次启动应用程序,您无需返回首次启动它的网页;您可以从 Java 缓存查看器中启动它。

    要打开 Java 缓存查看器:

    1. 打开控制面板。
    2. 双击 Java 图标。Java 控制面板将打开。
    3. 选择“常规”选项卡。
    4. 点击“查看”。Java 缓存查看器将打开。

    应用程序将列在 Java 缓存查看器屏幕上。

    Java 缓存查看器应用程序

    要运行应用程序,请选择它并单击“运行”按钮, ,或双击应用程序。应用程序将像从网页中启动一样启动。

    从桌面中运行 Java Web Start 应用程序

    您可以为 Java Web Start 应用程序添加桌面快捷方式。在 Java 缓存查看器中选择应用程序。右键单击并选择“安装快捷方式”或单击“安装”按钮,

    桌面上添加了一个快捷方式。

    然后,您可以像启动任何本地应用程序一样启动 Java Web Start 应用程序。

    Java Web Start 和安全性

    原文:docs.oracle.com/javase/tutorial/deployment/webstart/security.html

    本节描述了通过 Java Web Start 部署的应用程序的安全基础知识,包括:

    使用 Java Web Start 启动的应用程序默认在被称为沙盒的受限环境中运行。在这个沙盒中,Java Web Start:

    • 保护用户免受可能影响本地文件的恶意代码
    • 保护企业免受可能试图访问或破坏网络数据的代码

    通过 Java Web Start 启动的沙箱应用程序仍保持在此沙箱中,这意味着它们无法访问本地文件或网络。有关详细信息,请参阅富互联网应用程序中的安全性

    动态下载 HTTPS 证书

    Java Web Start 动态导入证书,就像浏览器通常做的那样。为此,Java Web Start 设置了自己的https处理程序,使用java.protocol.handler.pkgs系统属性来初始化SSLSocketFactoryHostnameVerifier的默认值。它使用方法HttpsURLConnection.setDefaultSSLSocketFactoryHttpsURLConnection.setDefaultHostnameVerifier设置默认值。

    如果您的应用程序使用这两种方法,请确保它们在 Java Web Start 初始化https处理程序之后被调用,否则您的自定义处理程序将被 Java Web Start 默认处理程序替换。

    您可以确保使用自定义的SSLSocketFactoryHostnameVerifier之一:

    • 安装您自己的https处理程序,以替换 Java Web Start 的https处理程序。
    • 在您的应用程序中,只有在创建第一个https URL对象之后才调用HttpsURLConnection.setDefaultSSLSocketFactoryHttpsURLConnection.setDefaultHostnameVerifier,这会首先执行 Java Web Start 的https处理程序初始化代码。

    常见的 Java Web 启动问题

    原文:docs.oracle.com/javase/tutorial/deployment/webstart/problems.html

    本节涵盖了在开发和部署 Java Web 启动应用程序时可能遇到的一些常见问题。每个问题后面都列出了可能的原因和解决方案。

    问题: 我的浏览器将我的应用程序的 Java 网络启动协议(JNLP)文件显示为纯文本。

    很可能,您的 Web 服务器不知道 JNLP 文件的正确 MIME 类型。有关更多信息,请参阅设置 Web 服务器部分。

    此外,如果您正在使用代理服务器,请确保更新文件的时间戳,以便在 Web 服务器上更新资源的情况下,代理服务器将更新其缓存。

    问题: 当我尝试启动我的 JNLP 文件时,我收到以下错误:

    MissingFieldException[ The following required field is missing from the launch
      file: (<application-desc>|<applet-desc>|<installer-desc>|<component-desc>)]
            at com.sun.javaws.jnl.XMLFormat.parse(Unknown Source)
            at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
            at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
            at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
            at com.sun.javaws.Main.launchApp(Unknown Source)
            at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
            at com.sun.javaws.Main.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)

    通常,当您的 XML 格式不正确时会出现此错误。您可以盯着代码直到找到问题所在,但更容易的方法是在文件上运行 XML 语法检查器。(NetBeans IDE 和 jEdit 都提供 XML 语法检查器。)

    然而,此错误可能在其他情况下发生,上述情况是由另一个情况引起的,在其他情况下,这是由一个在其他情况下是格式良好的 XML 文件中的以下行引起的:

    <description kind="short">Demonstrates choosing the drop location in the target <code>TransferHandler</code></description>
    

    错误是由非法嵌入的code标签引起的。

    问题和练习:Java Web Start

    原文:docs.oracle.com/javase/tutorial/deployment/webstart/QandE/questions.html

    问题

    1. 在要运行 Java Web Start 应用程序的链接中,指定了哪个文件作为a标签的href属性?
    2. Web 服务器必须识别哪种 MIME 类型才能托管 Java Web Start 应用程序?
    3. 在应用程序的JNLP文件中,resources元素内必须指定哪两个元素?
    4. 哪个接口提供了控制 Java Web Start 应用程序资源如何被缓存的能力?
    1. BasicService
    2. DownloadService
    3. PersistenceService
    4. ExtendedService
    1. 真或假:Java Web Start 应用程序默认在安全沙箱中运行。
    2. 真或假:如果 Java Web Start 应用程序在安全沙箱中运行,则应用程序的 JAR 文件可以位于不同的服务器上。
    3. 要使 Java Web Start 应用程序支持安全沙箱之外的操作,您必须做什么?

    练习

    1. 编写您将添加到JNLP文件中的 XML 代码,以请求应用程序完全访问客户端系统。
    2. 对于一个 Java Web Start 应用程序,在 JAR 文件的images目录中有两个图标,one.giftwo.gif。编写您将用于访问这些图像的应用程序代码。

    检查您的答案。

Java 中文官方教程 2022 版(十二)(3)https://developer.aliyun.com/article/1486359

相关文章
|
11天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
2月前
|
Java 开发者 UED
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
48 3
|
5天前
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
|
8天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
本系列教程笔记详细讲解了Kotlin语法,适合希望深入了解Kotlin的开发者。对于需要快速学习Kotlin的小伙伴,推荐查看“简洁”系列教程。本篇笔记重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android库开发建议以及相互调用时的注意事项。
14 3
|
10天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
18 3
|
11天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
17天前
|
消息中间件 存储 JSON
rabbitmq基础教程(ui,java,springamqp)
本文提供了RabbitMQ的基础教程,包括如何使用UI创建队列和交换机、Java代码操作RabbitMQ、Spring AMQP进行消息发送和接收,以及如何使用不同的交换机类型(fanout、direct、topic)进行消息路由。
13 0
rabbitmq基础教程(ui,java,springamqp)
|
18天前
|
存储 前端开发 Java
Java后端如何进行文件上传和下载 —— 本地版(文末配绝对能用的源码,超详细,超好用,一看就懂,博主在线解答) 文件如何预览和下载?(超简单教程)
本文详细介绍了在Java后端进行文件上传和下载的实现方法,包括文件上传保存到本地的完整流程、文件下载的代码实现,以及如何处理文件预览、下载大小限制和运行失败的问题,并提供了完整的代码示例。
114 1
|
9天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(2)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(2)
|
9天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(1)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(1)