问题标签 [sdkman]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
40 浏览

java - 如何反射性地获取 Java SE 中包含的方法的参数名称?

我正在寻找一些为基于 Java SE 8 中的类(特别是关于threeten-extra#166)的静态导入而设计的代码。

作为第一步,我将自动为基于一组特定类中的静态工厂方法的方法生成 Java 代码。我希望确保我不会错过任何东西,减少手动错误的机会,并消除我重复的复制/粘贴。

我正在使用 Java 反射 API 来检索Method要为其自动生成代码的方法的对象。然后我使用该Method对象生成方法签名。

例如,对于该LocalDate.of(int year, int month, int dayOfMonth)方法,我想要这样的东西:

至关重要的是,我要确保生成的 Java 代码签名具有与 JDK 中相同的参数名称。我知道 Java 能够使用Parameter.getName(). 但是,方法参数名称不保证存在;.class默认情况下,文件不存储它们(-parameters选项javac将导致它们被包含在内)。对于我的特殊情况,参数名称是在 Java 中,它(至少对于我的版本)没有编译它们。

输出:

我尝试使用Paranamer库从Java 8 Javadoc读取参数名称,但它似乎不支持 Java 8 Javadoc HTML 格式(paranamer#39)。

我目前正在使用SDKMAN!在 macOS 上管理 Java 的版本,即AdoptOpenJDK8.x。鉴于 Java 版本之间的方法应该相同,它不需要是 Java 8 的这个特定版本,尽管它必须是Java 8的一个版本。

Method在这种情况下,如何获取内置 Java SE 8 类的参数名称?

0 投票
0 回答
30 浏览

tomcat - 为什么通过sdkman安装tomcat时缺少tomcat命令的可执行权限?

我使用 sdkman 安装 Tomcat 8.5.60。但是我无法执行tomcat,因为catalina.sh缺少诸如tomcat命令的可执行权限。

相反,当我从 tar 存档手动安装 tomcat 时,我还发现 tomcat 命令的可执行权限有效。

为什么会出现这种差异?

我的环境是Ubuntu 20.04 LTS on WSL2 of Windows 10 home

0 投票
0 回答
71 浏览

java - 未为特定文件夹和所有子文件夹设置 Java 版本

Linux Mint 20
Java
8、11。SDKMAN:5.12.14

当前 Java 版本 = 11

我有MyProject45 个子文件夹的文件夹:

我想将文件夹MyProject及其所有 45 个子文件夹的特定 Java 版本设置为 8。

.sdkmanrc在文件夹中创建MyProject包含内容的文件:

当我打开文件夹MyProject并使用此命令时:

我得到了java = 1.8

好的。它工作正常。

但是,当我打开任何子文件夹时,例如mySubfolder2,Java 版本是 11。

是否可以为文件夹MyProject及其所有子文件夹设置 Java 8 ?

我不想.sdkmanrc在所有子文件夹中创建文件

0 投票
2 回答
180 浏览

amazon-web-services - How to pre-install sbt on an AWS EC2 instance (via user data)?

What I tried to far without success inside the AWS EC2 user data section:

The problem is that the .sdkman folder in above cases is not stored inside /home/ec2-user/.sdkman but rather always stored inside the root folder under /.sdkman for an automated EC2 instance launch with user data. (Manual installation via cmd on the other hand would work)

Which fails to make following next command to install sbt via user data:


(Accepting that the .sdkman folder is stored inside the root folder) I also tried instead to use:

but this does not work and returns following error:

As it looks like with the source command am I not able to go below /home/ec2-user/ as it's always added back to the path.


Further resources: https://sdkman.io/install


AWS EC2 Instance: Amazon Linux 2 AMI (HVM) - Kernel 5.10 // t3a.xlarge

Any help on how I can install sbt on an AWS EC2 instance automated via user data is highly appreciated!

0 投票
2 回答
80 浏览

java - 如何在 sdkman 中设置自定义 JDK 构建?

通过从http://jdk.java.net/loom/下载文件,解压缩它(我有一个名为 的目录jdk-18),将JAVA_HOMEenv var 设置为jdk-18目录,并将bin构建的子目录添加到我的PATHenv var 的开头。我能够使用构建来编译和运行使用虚拟线程预览功能的 Java 程序。

但这感觉像是一个非常手动的过程。我喜欢 SDKMAN 如何在我的系统上管理 JDK。如何将此早期访问版本(或任何其他 JDK 版本)设置为 SDKMAN 管理的 JDK 列表中的条目,以便我可以更改它,例如,通过键入sdk default java <my-jdk-18-name>

0 投票
1 回答
54 浏览

maven - mvn 依赖项:树挂起试图读取存储库

阿帕奇 Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)

Maven 主页:/home/redacted/.sdkman/candidates/maven/current

Java 版本:17.0.1,供应商:Azul Systems, Inc.,运行时:/home/redacted/.sdkman/candidates/java/17.0.1.fx-zulu

默认语言环境:en_US,平台编码:UTF-8

操作系统名称:“linux”,版本:“5.4.0-91-generic”,arch:“amd64”,家族:“unix”

运行以下命令永远不会完成,它似乎已挂起。

调试日志报告的最后几行:

[调试] 为http://repository.tesla.io:8081/nexus/content/repositories/snapshots/使用优先级 -1.0 的运输工具 WagonTransporter

[调试] 使用优先级为 0.0 的连接器 BasicRepositoryConnector 用于http://repository.tesla.io:8081/nexus/content/repositories/snapshots/

我很好奇为什么运行依赖树命令会导致 maven 尝试访问端口 8081 上的 tesla.io 存储库。

有没有办法告诉dependency:tree跳过这个存储库(或配置一些超时并跳过在某个指定的超时限制内无法访问的所有存储库)?

如何追踪dependency:tree尝试从 tesla 存储库读取的原因?

0 投票
1 回答
55 浏览

java - 树莓派找不到java安装

我正在尝试使用 SDK man 在我的树莓派上安装 Java 17。安装成功后,我无法在终端中使用 java -version 并出现此错误:

我有带有 8 GB 内存的树莓派 4 B。它具有 aarch64 作为架构。每次安装 Java 17 都会发生这种情况。

0 投票
0 回答
10 浏览

sdkman - 我可以全局安装 SDKMAN 吗?

我正在创建一个可以部署到 Azure 规模集的 VM 映像,但这涉及在设置结束时概括 VM 的基本映像,从而删除任何现有用户的用户帐户。我想在我的图像中包含 SDKMAN,但似乎官方安装脚本是硬编码的,只能将 SDKMAN(以及用户选择安装的任何包)安装到本地用户的主目录。是否有官方方法可以在用户主目录之外全局安装 sdkman?

我不太关心 sdkman 将安装的实际工具所在的位置,因为 CI 作业都将在同一用户下运行。

我可以破解我想的安装脚本,但如果有更好/更正式的方式,我宁愿不浪费时间。

0 投票
1 回答
27 浏览

java - sdkman maven 未检测到 sdkman java

这是java home和路径配置。不知道为什么 maven 没有正确检测到 java home。在 MacBook 上通过 sdkman 安装了 java 11 和 maven。谢谢。

0 投票
0 回答
17 浏览

apple-m1 - sdkman 没有在 Apple Silicon M1 上提供更多的 java 候选

我正在尝试在 macOS Apple Silicon M1 上安装不同版本的 java amzn,但除了列出的候选者之外,没有其他可用的候选者:

在此处输入图像描述

是否有可能获得额外的候选人?