Java 中文官方教程 2022 版(十一)(3)

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

Java 中文官方教程 2022 版(十一)(2)https://developer.aliyun.com/article/1486354

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

另一种创建 applet 的方法是只需移除抽象层(单独的顶部JPanel)并在 applet 的init方法中布置所有控件。直接在 applet 中创建 GUI 的缺点是,如果以后选择将功能部署为 Java Web Start 应用程序,则现在将更难部署您的功能。

在动态树演示示例中,核心功能位于DynamicTreePanel类中。现在,将DynamicTreePanel类放入JFrame并部署为 Java Web Start 应用程序变得轻而易举。

因此,为了保持可移植性并保持部署选项开放,请按照本页描述的基于组件的设计。

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

部署一个 Applet

译文:docs.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html

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

Java applet 可以以两种方式启动。

  • 您可以使用 Java 网络启动协议(JNLP)启动您的 applet。使用 JNLP 启动的 applet 可以访问强大的 JNLP API 和扩展。
  • 或者,您可以通过直接在 applet 标记中指定 applet 的启动属性来启动 applet。然而,这种部署 applet 的旧方法对 applet 施加了严格的安全限制。

部署工具包脚本包含可用于在网页中部署 applet 的有用 JavaScript 函数。

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

以下是一些逐步说明,用于打包和部署您的 applet。Dynamic Tree Demo applet 用于说明 applet 的部署。您可能希望设置构建脚本来执行以下一些步骤。

//


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


  1. 编译您的 applet 的 Java 代码,并确保所有类文件和资源(如图像)位于单独的目录中。
    在 DynamicTree Demo applet 的情况下,编译后的类文件将放置在 build/classes/appletComponentArch 目录中。
  2. 创建一个包含您的 applet 需要的任何 JAR 文件清单属性的文本文件。
    对于 DynamicTree Demo applet,创建一个名为 mymanifest.txt 的文件在 build/classes 目录中,并添加 PermissionsCodebaseApplication-Name 属性。该 applet 不需要访问用户系统资源,因此对于权限使用 sandbox。对于代码库,使用您将加载示例的域,例如 myserver.com。将以下属性添加到 mymanifest.txt 文件中。
Permissions: sandbox
Codebase: myserver.com
Application-Name: Dynamic Tree Demo
  1. 其他清单属性可用于限制 applet 仅使用受信任的代码,并为需要在特权 Java 代码和沙箱 Java 代码之间进行调用,或者具有调用 applet 的 JavaScript 代码的 applet 提供安全性。请参阅 使用清单属性增强安全性 课程以了解更多可用的清单属性。
  2. 创建一个包含您 applet 的类文件和资源的 JAR 文件。在您之前创建的 mymanifest.txt 文件中包含清单属性。
    例如,以下命令将创建一个 JAR 文件,其中包含 build/classes/appletComponentArch 目录中的类文件和 build/classes 目录中的清单文件。
% cd build/classes
% jar cvfm DynamicTreeDemo.jar mymanifest.txt appletComponentArch
  1. 参阅 在 JAR 文件中打包程序 课程,了解有关创建和使用 JAR 文件的更多信息。
  2. 为您的 applet 签署 JAR 文件并为签名加上时间戳。使用由受信任的证书颁发机构颁发的有效的当前代码签名证书,向用户提供确保可以安全运行 applet 的保证。
    请参阅 签署 JAR 文件 课程以获取更多信息。
    如果您想要使用签名的 JNLP 文件以确保安全性,请按照下一步中描述的方式创建 JNLP 文件,并在签名 JAR 文件之前将其包含在 JAR 文件中。有关详细信息,请参阅 Java 平台标准版部署指南中的 签名的 JNLP 文件
  3. 创建描述您的 applet 应如何启动的 JNLP 文件。
    这是用于启动动态树演示 applet 的 JNLP 文件。
    dynamictree_applet.jnlp 的源代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
    <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>
    <applet-desc 
         name="Dynamic Tree Demo Applet"
         main-class="components.DynamicTreeApplet"
         width="300"
         height="300">
     </applet-desc>
     <update check="background"/>
</jnlp>   
  1. 请注意,JNLP 文件中不存在请求额外权限的安全元素,因此 applet 仅在安全沙箱中运行。
    主题,JNLP 文件的结构,描述了 JNLP 文件的语法和选项。
  2. 创建将显示 applet 的 HTML 页面。调用部署工具包函数以部署 applet。
    在我们的示例中,动态树演示 applet 部署在 AppletPage.html 中。
<body>
    <!-- ... -->
    <script src="https://www.java.com/js/deployJava.js"></script>
    <script> 
        var attributes = {
            code:'components.DynamicTreeApplet',  width:300, height:300} ; 
        var parameters = {jnlp_href: 'dynamictree_applet.jnlp'} ; 
        deployJava.runApplet(attributes, parameters, '1.7'); 
    </script>
    <!-- ... -->
</body>
  1. 将 applet 的 JAR 文件、JNLP 文件和 HTML 页面放置在适当的文件夹中。
    对于此示例,请将 DynamicTreeDemo.jardynamictree_applet.jnlpAppletPage.html 放置在本地计算机或 Web 服务器上的同一目录中。建议使用 Web 服务器。要从本地计算机运行,必须将应用程序添加到例外站点列表中,该列表可从 Java 控制面板的安全选项卡中管理。
  2. 在浏览器中打开 applet 的 HTML 页面以查看 applet。在提示时同意运行 applet。检查 Java 控制台日志以查看错误和调试消息。

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

使用 Applet 标签部署

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

如果您不确定最终用户的浏览器是否启用了 JavaScript 解释器,您可以通过手动编码 HTML 标签来部署您的 Java applet,而不是使用 Deployment Toolkit 函数。根据您需要支持的浏览器,您可能需要使用 HTML 标签来部署您的 Java applet。查看W3C HTML 规范以获取有关这些标签的使用详情。

您可以使用 Java 网络启动协议(JNLP)启动您的 applet,或者直接在 标签中指定启动属性。

部署准备

按照部署 applet 主题中描述的步骤编译您的源代码,创建并签名 JAR 文件,如有必要创建 JNLP 文件。部署的整体步骤仍然相关。只有包含 applet 的 HTML 页面的内容会发生变化。

手动编码 Applet 标签,使用 JNLP 启动

AppletPage_WithAppletTag.html 页面使用手动编码的 标签部署了 Dynamic Tree Demo applet(意味着该 applet 不是使用自动生成所需 HTML 的 Deployment Toolkit 部署的)。该 applet 仍然使用 JNLP 启动。JNLP 文件在 jnlp_href 属性中指定。

<applet code = 'appletComponentArch.DynamicTreeApplet' 
        jnlp_href = 'dynamictree_applet.jnlp'
        width = 300
        height = 300 />

手动编码 Applet 标签,无需使用 JNLP 启动

使用 JNLP 是部署 applet 的首选方式,但您也可以在没有 JNLP 文件的情况下部署您的 applet。

AppletPage_WithAppletTagNoJNLP.html 部署了 Dynamic Tree Demo applet,如下面的代码片段所示。

<applet code = 'appletComponentArch.DynamicTreeApplet' 
    archive = 'DynamicTreeDemo.jar'
    width = 300
    height = 300>
    <param name="permissions" value="sandbox" />
</applet>

其中

  • code 是 applet 类的名称。
  • archive 是包含 applet 及其资源的 jar 文件的名称。
  • width 是 applet 的宽度。
  • height 是 applet 的高度。
  • permissions 表示 applet 是否在安全沙箱中运行。将值指定为"sandbox"以在沙箱中运行。将值指定为"all-permissions"以在沙箱外运行。如果未提供 permissions 参数,则签名的 applet 默认为"all-permissions",未签名的 applet 默认为"sandbox"。

进一步使用小程序

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

Java 小程序 API 使您能够充分利用小程序与浏览器之间的密切关系。该 API 由javax.swing.JApplet类和java.applet.AppletContext接口提供。小程序执行架构使小程序能够与其环境交互,从而产生丰富的用户体验。小程序可以操纵其父网页,与网页中的 JavaScript 代码交互,查找在同一网页中运行的其他小程序等等。

探索 Java 小程序的高级功能在后续主题中。

有关常见小程序和 Java Web 启动应用程序的高级主题的进一步信息,请参阅使用 Java 丰富互联网应用程序做更多事情(例如设置参数和属性,使用 Java 网络启动协议 API)。

查找和加载数据文件

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

每当 Java applet 需要从指定了相对 URL 的文件加载数据(指定了文件位置但不完全指定的 URL),applet 通常使用代码库或文档库来形成完整的 URL。

JAppletgetCodeBase 方法返回的代码库是一个 URL,指定了 applet 的类加载的目录。对于本地部署的 applet,getCodeBase 方法返回 null。

JAppletgetDocumentBase 方法返回的文档库指定包含 applet 的 HTML 页面的目录。对于本地部署的 applet,getDocumentBase 方法返回 null。

除非 标签指定了代码库,否则代码库和文档库都指向同一服务器上的同一目录。

applet 可能需要的数据,或者需要依赖的备份数据,通常相对于代码库指定。通常由 applet 开发人员指定的数据,通常通过使用参数指定,通常相对于文档库指定。


**注意:**出于安全原因,浏览器限制了不受信任的 applet 可以读取的 URL。例如,大多数浏览器不允许不受信任的 applet 使用 “…” 访问代码库或文档库上面的目录。此外,由于不受信任的 applet 不能读取除了位于 applet 源主机上的文件之外的文件,因此如果文档和不受信任的 applet 位于不同的服务器上,则文档库通常是无用的。


JApplet 类定义了方便的图像加载和声音加载方法,使您能够相对于基本 URL 指定图像和声音。例如,假设 applet 设置为以下图中显示的其中一个目录结构。

要创建一个使用 imgDir 下的 a.gif 图像文件的 Image 对象,applet 可以使用以下代码:

Image image = getImage(getCodeBase(), "imgDir/a.gif");

定义和使用 Applet 参数

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

参数对于 Java applet 就像命令行参数对于应用程序一样重要。它们使用户能够自定义 applet 的操作。通过定义参数,你可以增加 applet 的灵活性,使其在多种情况下工作而无需重新编码和重新编译。

指定 Applet 的输入参数

你可以在 applet 的 Java 网络启动协议(JNLP)文件或 标签的 元素中指定 applet 的输入参数。通常最好在 applet 的 JNLP 文件中指定参数,这样即使 applet 部署在多个网页上,参数也可以一致提供。如果 applet 的参数会因网页而异,则应在 标签的 元素中指定参数。

如果你对 JNLP 不熟悉,请查看 Java 网络启动协议 主题获取更多信息。

考虑一个需要三个参数的 applet。paramStrparamInt 参数在 applet 的 JNLP 文件中指定,applettakesparams.jnlp

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
    <!-- ... -->
    <applet-desc
         name="Applet Takes Params"
         main-class="AppletTakesParams"
         width="800"
         height="50">
             <param name="paramStr"
                 value="someString"/>
             <param name="paramInt" value="22"/>
     </applet-desc>
     <!-- ... -->
</jnlp>

paramOutsideJNLPFile 参数在传递给部署工具包脚本的 runApplet 函数的 parameters 变量中指定在 AppletPage.html

<html>
  <head>
    <title>Applet Takes Params</title>
    <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
  </head>
  <body>
    <h1>Applet Takes Params</h1>
    <script
      src="https://www.java.com/js/deployJava.js"></script>
    <script>
        var attributes = { code:'AppletTakesParams.class',
            archive:'applet_AppletWithParameters.jar',
            width:800, height:50 };
        var parameters = {jnlp_href: 'applettakesparams.jnlp',
            paramOutsideJNLPFile: 'fooOutsideJNLP' };
        deployJava.runApplet(attributes, parameters, '1.7');
    </script>
  </body>
</html>

查看 部署 Applet 获取有关 runApplet 函数的更多信息。

检索 Applet 的输入参数

你可以使用 Applet 类的 getParameter 方法来检索 applet 的输入参数。AppletTakesParams.java applet 检索并显示其所有输入参数(paramStrparamIntparamOutsideJNLPFile)。

import javax.swing.JApplet;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;
public class AppletTakesParams extends JApplet {
    public void init() {
        final String  inputStr = getParameter("paramStr");        
        final int inputInt = Integer.parseInt(getParameter("paramInt"));
        final String inputOutsideJNLPFile = getParameter("paramOutsideJNLPFile");
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    createGUI(inputStr, inputInt, inputOutsideJNLPFile);
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't successfully complete");
        }
    }
    private void createGUI(String inputStr, int inputInt, String inputOutsideJNLPFile) {
        String text = "Applet's parameters are -- inputStr: " + inputStr +
                ",   inputInt: " + inputInt +
                ",   paramOutsideJNLPFile: " + inputOutsideJNLPFile;
        JLabel lbl = new JLabel(text);
        add(lbl);
    }
}

下面显示了 AppletTakesParams applet。

//


注意: 如果你看不到 applet 运行,你需要安装至少 Java SE Development Kit (JDK) 6 update 10 版本。



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


下载源代码 以进一步进行实验。

显示短状态字符串

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

所有浏览器都允许 Java applets 显示一个简短的状态字符串。页面上的所有 Java applets 以及浏览器本身共享同一状态行。

永远不要将关键信息放在状态行中。如果许多用户可能需要该信息,请在 applet 区域内显示该信息。如果只有少数精通的用户可能需要该信息,请考虑将信息发送到标准输出(参见将诊断信息写入标准输出和错误流)。

状态行通常不太显眼,并且可能被其他 applets 或浏览器覆盖。因此,最好将其用于偶发的、短暂的信息。例如,一个加载多个图像文件的 applet 可能会显示当前正在加载的图像文件的名称。

Applets 使用showStatus方法显示状态行,该方法从Applet类继承到JApplet类。

这里是其使用示例:

showStatus("MyApplet: Loading image file " + file);

注意: 不要在状态行中放置滚动文本。浏览器用户会觉得这种行为非常恼人。


在浏览器中显示文档

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

一个 Java 小程序可以使用 java.applet.AppletContext 类中的 showDocument 方法在浏览器窗口中加载网页。

以下是 showDocument 的两种形式:

public void showDocument(java.net.URL *url*)
public void showDocument(java.net.URL *url*, String *targetWindow*)

showDocument 的单参数形式简单地指示浏览器显示指定 URL 的文档,而不指定显示文档的窗口。

showDocument 的双参数形式允许您指定显示文档的窗口或 HTML 框架。第二个参数可以有以下值之一:

  • "_blank" – 在一个新的、无名称的窗口中显示文档。
  • "*windowName*" – 在名为 windowName 的窗口中显示文档。如有必要,将创建此窗口。
  • "_self" – 在包含小程序的窗口和框架中显示文档。
  • "_parent" – 在小程序框架的父框架中显示文档。如果小程序框架没有父框架,则与 "_self" 相同。
  • "_top" – 在顶层框架中显示文档。如果小程序框架是顶层框架,则与 "_self" 相同。

注意: 在这个讨论中,frame 指的不是一个 Swing JFrame,而是浏览器窗口内的 HTML 框架。


以下小程序使您可以尝试 showDocument 两种形式的每个参数。该小程序打开一个窗口,让您输入 URL 并选择 targetWindow 参数的选项。当您按下 Return 键或点击显示文档按钮时,小程序调用 showDocument

//


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


以下是调用 showDocument 的小程序代码。这是整个程序,ShowDocument

*...//In an Applet subclass:*
        urlWindow = new URLWindow(getAppletContext());
        . . .
class URLWindow extends Frame {
    ...
    public URLWindow(AppletContext appletContext) {
        ...
        this.appletContext = appletContext;
        ...
    }
    ...
    public boolean action(Event event, Object o) {
        ...
            String urlString =
                */* user-entered string */*;
            URL url = null;
            try {
                url = new URL(urlString);
            } catch (MalformedURLException e) {
                *...//Inform the user and return...*
            }
            if (url != null) {
                if (*/* user doesn't want to specify
                           the window */*) {
                    appletContext.showDocument(url);
                } else {
                    appletContext.showDocument(url,
                        */* user-specified window */*);
                }
            }
        ...

下载源代码 以进一步尝试 Show Document 示例。

从小程序调用 JavaScript 代码

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

Java 小程序可以调用与小程序在同一网页中的 JavaScript 函数。LiveConnect 规范描述了 JavaScript 代码如何与 Java 代码通信的详细信息。

netscape.javascript.JSObject类使 Java 小程序能够检索对 JavaScript 对象的引用并与网页交互。接下来描述的数据摘要小程序调用 JavaScript 代码从网页中检索信息,并将数据摘要写回网页。

假设您有一个带有几个 JavaScript 函数的网页。示例AppletPage.html具有用于检索年龄、地址和电话号码的 JavaScript 函数。还有一个名为userName的变量,一开始没有值。

<head>
<title>Data Summary Applet Page - Java to JavaScript LiveConnect</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<script language="javascript">
    var userName = "";
    // returns number
    function getAge() { 
        return 25;
    }
    // returns an object
    function address() { 
        this.street = "1 Example Lane";
        this.city = "Santa Clara";
        this.state = "CA";
    }
    // returns an array
    function getPhoneNums() { 
        return ["408-555-0100", "408-555-0102"];
    } 
    function writeSummary(summary) {
        summaryElem =
            document.getElementById("summary");
        summaryElem.innerHTML = summary;
    }
    </script>
    <!-- ... -->      
</head>
<body>
    <script src =
      "https://www.java.com/js/deployJava.js"></script>
    <script> 
        <!-- ... -->
        deployJava.runApplet(attributes, parameters, '1.6'); 
    </script>          
    <!-- ... -->
    <p id="summary"/>  // this HTML element contains
                             // the summary 
    <!-- ... -->
</body>


Java 中文官方教程 2022 版(十一)(4)https://developer.aliyun.com/article/1486356

相关文章
|
7月前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
361 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
3月前
|
Oracle Java 关系型数据库
java 编程基础入门级超级完整版教程详解
这份文档是针对Java编程入门学习者的超级完整版教程,涵盖了从环境搭建到实际项目应用的全方位内容。首先介绍了Java的基本概念与开发环境配置方法,随后深入讲解了基础语法、控制流程、面向对象编程的核心思想,并配以具体代码示例。接着探讨了常用类库与API的应用,如字符串操作、集合框架及文件处理等。最后通过一个学生成绩管理系统的实例,帮助读者将理论知识应用于实践。此外,还提供了进阶学习建议,引导学员逐步掌握更复杂的Java技术。适合初学者系统性学习Java编程。资源地址:[点击访问](https://pan.quark.cn/s/14fcf913bae6)。
305 2
|
8月前
|
消息中间件 Java 数据库
自研Java框架 Sunrays-Framework使用教程「博客之星」
### Sunrays-Framework:助力高效开发的Java微服务框架 **Sunrays-Framework** 是一款基于 Spring Boot 构建的高效微服务开发框架,深度融合了 Spring Cloud 生态中的核心技术组件。它旨在简化数据访问、缓存管理、消息队列、文件存储等常见开发任务,帮助开发者快速构建高质量的企业级应用。 #### 核心功能 - **MyBatis-Plus**:简化数据访问层开发,提供强大的 CRUD 操作和分页功能。 - **Redis**:实现高性能缓存和分布式锁,提升系统响应速度。 - **RabbitMQ**:可靠的消息队列支持,适用于异步
自研Java框架 Sunrays-Framework使用教程「博客之星」
|
9月前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
8410 5
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
8月前
|
Java 数据库连接 数据处理
探究Java异常处理【保姆级教程】
Java 异常处理是确保程序稳健运行的关键机制。它通过捕获和处理运行时错误,避免程序崩溃。Java 的异常体系以 `Throwable` 为基础,分为 `Error` 和 `Exception`。前者表示严重错误,后者可细分为受检和非受检异常。常见的异常处理方式包括 `try-catch-finally`、`throws` 和 `throw` 关键字。此外,还可以自定义异常类以满足特定需求。最佳实践包括捕获具体异常、合理使用 `finally` 块和谨慎抛出异常。掌握这些技巧能显著提升程序的健壮性和可靠性。
133 4
|
8月前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
145 1
|
9月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
556 26
|
8月前
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
415 0
|
9月前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
9月前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)

热门文章

最新文章