我JAVA_HOME在用户的环境变量中定义了 jdk11 并PATH包含%JAVA_HOME%/bin在其中。
现在我想cmd通过更改JAVA_HOME为 jdk8在命令提示符 ( ) 中临时切换到 jdk8,但它不会更改当前 cmd 实例中的值path或java -version不会更改。
PS- 我已经删除了 c:\Program Data\Oracle\java.. 文件以避免任何混淆
我在 macOS 上使用 Bash 作为我的默认 shell,但我决定切换到 Fish。
我正在尝试在不同版本的 Java 之间切换。在 bash 中,它是使用~/.bash_profile
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Run Code Online (Sandbox Code Playgroud)
我在 Fish 上设置了等价物 ~/.config/fish/fish_variables
set -x JAVA_HOME `/usr/libexec/java_home -v 1.7`
Run Code Online (Sandbox Code Playgroud)
不幸的是,Java 版本并未更改。如何使用~/.config/fish/fish_variables?设置环境变量(特别是特定版本的 Java)?
根据常见问题解答~/.config/fish/fish_variables,~/.config/fish/config.fish应该使用,而不是。我也创建了~/.config/fish/fish.config而不是~/.config/fish/config.fish.
我希望运行一个小实用程序(“ Nightly Updater名为 Simutrans 的游戏 ”,NU)。
NU 以 .jar 文件的形式出现,NU 的唯一系统要求是 Java 9。
我的系统中安装了 Java 8(似乎我需要保留它才能运行其他较旧的程序)。
似乎 Java 9不再可用,但我认为 Java 12 将向后兼容 Java 9 程序。
Java 12 安装页面告诉我下载“开发工具包”,它使用了近半 GB 的磁盘空间,但我不想要 IDE 或任何其他开发工具,所以这似乎不合适。我想下载足以在 Windows 7 中以用户身份运行 NU(最好是用户,而不是管理员帐户),仅此而已。
运行 NU 所需的最少 Java 安装是多少?请问在哪里可以找到?
我使用的是 64 位 Windows 7。
当我使用 JDK11,然后安装 Groovy 时,出现了一些警告,如下所示:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/D:/Groovy/groovy-2.5.7/lib/groovy-2.5.7.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Groovy Version: 2.5.7 JVM: 11.0.3 Vendor: Oracle Corporation OS: Windows 10
当我使用JDK 8时,没有警告,有人知道原因吗?
我正在使用 VSCode 制作 Spring Boot 应用程序,但 Java 类前面有一个红色时钟符号,并且自动完成功能不起作用。我已经安装了 Spring Boot 开发所需的所有扩展以及 Microsoft 的 Java 扩展包。
我最近将我的笔记本电脑升级到 macOS 10.15.4,现在 Java 将无法从命令行(或我能告诉的任何其他地方)运行,我只看到以下错误消息:
“jdk-11.0.2.jdk”无法打开,因为无法验证开发者
我正在尝试编译我在互联网上找到的一个 java 程序,它说我必须检查是否安装了 javac。我很久以前安装了 JDK,所以它应该可以工作,但我收到命令未找到错误:

如何解决这个问题?
我正在尝试使用 xcopy 将文件从一台机器复制到我们网络上的另一台机器作为 Java 程序的一部分。我是这样调用 xcopy 的:
xcopy "C:\Program Files\path\to\my\file" "\\othermachine\c$\Documents and Settings\<myUserName>\Desktop\Test\path\in\directory\structure\to\file" /e /y /i
Run Code Online (Sandbox Code Playgroud)
因为我是在 Java 中从 with 调用它的,所以我需要抑制所有提示。在大多数情况下,\i 和\y 正是这样做的。但是,对于这个文件 /i 失败,我得到文件或目录提示。结果就是挂掉了整个程序。
我还尝试将 /s /t /q 附加到现有选项后调用它,但无济于事。为什么 /i 不能抑制文件或目录提示?是否有我需要调用选项的命令?还有什么我需要做的吗?
编辑:我应该提到,该文件是一个文本文件 - 单行文本。它没有扩展名。它看起来像这样:文件名
当我在 Windows 命令行中使用 batchfile.bat >> logfile.txt 命令时,它正确地将正常输出输出到文本文件中,但 Java 异常会输出到控制台。我可以这样做,以便将异常也写入日志文件吗?
要么我在做一些愚蠢的事情,要么 Sun 是。怎么会像这样:
java -version > version.txt
Run Code Online (Sandbox Code Playgroud)
仍然打印到标准输出并将 version.txt 留空?我正在检查退出代码,它仍然是 0,所以这不是写入 stderr。
我需要这个,因为我正在构建一个测试环境工具并想检查 Java 的版本是否足够,我计划捕捉该版本的输出,但现在我被卡住了。
我使用的是 OS X Leopard,Java 版本 1.6.0_20。
有任何想法吗?