extensions-repo/user-guide/files/Java开发.md

9.1 KiB
Raw Blame History

Java开发支持

插件选择

  • 根据系统上能够安装的JDK版本和Kylin-IDE版本做选择。注意以下两套Java支持插件组会相互冲突只能二选一

  • 如果系统上能够安装JDK17或以上版本Kylin-IDE版本为1.1.0以上,推荐使用较主流的开源插件:

    • Extesion Pack for Java(vscjava.vscode-java-pack)这套开源插件以redhat提供的Java语言支持插件为基础是插件市场中较为主流的Java开发插件。通过安装此插件可安装Java插件组包括以下插件也可以单独安装
      • Language Support for Java™ by Red Hat(redhat.java)Java语言编辑支持插件
      • Debugger for Java(vscjava.vscode-java-debug)Java调试支持插件
      • Test Runner for Java(vscjava.vscode-java-test)Java测试支持插件
      • Maven for Java(vscjava.vscode-maven)Maven构建支持插件
      • Gradle for Java(vscjava.vscode-gradle)Gradle构建支持插件
      • Project Manager for Java(vscjava.vscode-java-dependency)Java项目创建
      • IntelliCode(此插件非开源可以卸载或不安装。VisualStudioExptTeam.vscodeintellicode)AI代码补全
    • Spring Boot Extension Pack(vmware.vscode-boot-dev-pack)Spring Boot支持插件组安装此插件将安装以下插件
      • Spring Boot Tools(vmware.vscode-spring-boot)Spring Boot配置文件编辑支持Java编辑支持依赖上文redhat.java插件
      • Spring Initializr Java Support(vscjava.vscode-spring-initializr)Spring Boot项目创建支持
      • Spring Boot Dashboard(vscjava.vscode-spring-boot-dashboard)管理workspace中的Spring Boot项目依赖vmware.vscode-spring-boot、redhat.java、vscjava.vscode-java-debug
    • 上述插件可以在插件市场中检索到
  • 如果系统上能够安装JDK11或以上版本或Kylin-IDE版本为1.1.0以下或其他插件API较老旧版本的VSCode推荐使用

    • Java Pack(kylinideteam.vscode-java-pack)此插件组基于较低版本开源Java支持插件改造以支持JDK11
      • Java(kylinideteam.java)Java语言编辑支持插件
      • Debugger for Java(kylinideteam.vscode-java-debug)Java调试支持插件
      • Test Runner for Java(kylinideteam.vscode-java-test)Java测试支持插件
      • Maven for Java(kylinideteam.vscode-maven)Maven构建支持插件
      • Gradle for Java(kylinideteam.vscode-gradle)Gradle构建支持插件
      • Project Manager for Java(kylinideteam.vscode-java-dependency)Java项目创建
    • 上述插件可以在插件市场中检索到在插件视图中找到KYLIN-IDE推荐的插件选择Kylin-IDE(KylinCode)插件分类->Java语言支持

系统软件安装

  • 安装JDK

    • 命令举例
      • sudo apt install openjdk-11-jdk
      • sudo apt install openjdk-17-jdk
      • sudo yum install java-11-openjdk-devel
  • Maven与JDK版本有对应关系

    • 在互联网上容易检索到JDK版本对应的最低maven版本
    • 在JDK17环境中系统上的maven软件包可能不符合要求需要从maven官网或从其他渠道安装高版本maven软件

JDK配置

  • 请区分插件需要的JDK运行环境和项目开发使用JDK环境
  • 插件需要的JDK运行环境
    • Java支持插件中使用了Java编写的程序例如Java编辑支持插件的语言服务就是使用Java编写的因此插件运行需要一个JDK环境
    • 通常情况下只要安装了JDK11或以上版本可以不用再手动配置java.jdt.ls.java.home
    • java.jdt.ls.java.home配置方法
      • 在设置中搜索java.jdt.ls.java.home
        • 修改“用户”设置,则对用户下的所有工程生效
        • 修改“工作区”设置,仅对当前工作区项目生效,如果“工作区”设置与“用户”设置不同,则“工作区”设置优先于“用户”设置
      • 编辑配置文件,"java.jdt.ls.java.home": "JDK路径根目录"
      • 如果未设置java.jdt.ls.java.home则按以下顺序做搜索找到一个满足最低环境的JDK11JDK
        • JDK_HOME 环境变量
        • JAVA_HOME 环境变量
        • 当前系统路径
  • 项目开发使用的JDK环境
    • 项目开发使用的JDK环境是指项目编译、调试使用的JDK环境
    • 项目开发使用的JDK环境可以配置多个在设置中搜索java.configuration.runtimes, 编辑json配置文件其中default字段用于指定一个默认的JDK环境会根据默认或项目的源级别选择最佳版本setting.json文件配置举例:
      "java.configuration.runtimes": [
          {
              "name": "JavaSE-1.8",
              "path": "/usr/lib/jvm/java-8-openjdk-amd64",
          },
          {
              "name": "JavaSE-11",
              "path": "/usr/lib/jvm/java-11-openjdk-amd64",
              "default": true
          },
          {
              "name": "JavaSE-17",
              "path": "/usr/lib/jvm/java-17-openjdk-amd64",
          },
      ]
      
      • 注意name字段只能填指定值,填错时有黄色波浪线提示,可以将鼠标放在波浪线上,会有指定值说明
    • 在不配置java.configuration.runtimes的情况下也可以通过菜单配置JDK默认运行环境
      • 方法1在Java项目中资源管理器视图下方有Java Project配置小窗口点击小窗口右上角的“...”按钮选择Configure Java Runtime即可选择默认的JDK
      • 方法2或ctrl+shift+P打开命令面板搜索Configure Java Runtime即可选择默认的JDK
      • 注意当在setting.json中配置了java.configuration.runtimes将以setting.json配置为准上述方法将不起作用
  • 系统中安装了多个JDK版本默认使用哪个
    • 系统中通常可以安装多个JDK版本通过alternatives机制系统默认Java相关命令会关联到某一个JDK中
      • 通过ls -lh命令能够看到/usr/bin/java链接到了/etc/alternatives/java它指向了一个JDK版本中的java命令
    • 修改/etc/alternatives/下的链接不推荐直接修改链接的方法而使用update-alternatives命令
      • 例如,修改/usr/bin/java指向,执行sudo update-alternatives --config java,输入序号即可完成修改
    • 常用的主要是javajavac命令其他java相关命令可以根据需要修改指向命令举例
      • sudo update-alternatives --config java
      • sudo update-alternatives --config javac
  • 注意若系统中安装了多个JDKtask.json中command字段中若需调用javac、java命令有些方法可以区分调用的是哪个JDK中的命令
    • 方法1调用命令时写命令的绝对路径直接写明从哪个JDK中调用
    • 方法2使用update-alternatives命令修改好系统默认的相关命令在命令行中确认修改生效task.json中即可直接使用java或javac命令

项目(工程)管理

  • 已有项目

    • 打开项目文件夹Java支持插件会对项目进行解析
  • 创建项目

    • 安装项目创建插件Kylin Project Manager(kylinideteam.project-manager)注意spring boot项目仅在JDK17环境中支持
    • 安装插件后,入口:文件主菜单-->新建项目
    • Java类项目创建主要基于开源插件提供支持
    • 详细见项目管理章节
  • 项目配置

    • 需要了解基本的task.json、launch.json配置方法如何配置工程的构建、调试、运行章节
    • 在项目操作区中左侧资源管理器视图下方的折叠菜单可执行构建操作或task中的其他任务
    • 一个简单Java项目task.json的配置例子如下
      {
          "label": "build", 
          "type": "shell", 
          "options": {
              "cwd": "${workspaceFolder}"
          }, 
          "command": "/usr/lib/jvm/java-11-openjdk-amd64/bin/javac", 
          "args": [
              "src/main.java",
              "-sourcepath",
              "src",
              "-classpath",
              "${config:java.project.referencedLibraries}",
              "-d", 
              "${config:java.project.outputPath}"
          ]
      }, 
      {
          "label": "run", 
          "type": "shell", 
          "options": {
              "cwd": "${workspaceFolder}"
          }, 
          "command": "java", 
          "args": [
              "-cp", 
              "${config:java.project.outputPath}", 
              "main"
          ], 
          "dependsOn": [
              "javac"
          ]
      }
      

调试

  • 一键调试
    • 对于简单的Java程序文件的调试不需要进行配置点击调试按钮或菜单可以直接调试
  • 对于较复杂的Java程序需要配置launch.json