mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-12 18:36:53 -10:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21a61b7cc5 |
No files matched your search
@@ -1620,6 +1620,17 @@ pub fn apply_to_run_configs_in(configs: &mut [RunConfig], root: &Path, fallback:
|
||||
path_dirs.push(bin);
|
||||
}
|
||||
}
|
||||
// JAR Application's default JRE is the project JDK; a chosen JRE is an absolute `java`.
|
||||
"jar-application" => {
|
||||
if let Some(jdk) = &jdk
|
||||
&& c.command == "java"
|
||||
{
|
||||
let java = crate::java::java_executable(&jdk.home);
|
||||
if java.is_file() {
|
||||
c.command = java.to_string_lossy().into_owned();
|
||||
}
|
||||
}
|
||||
}
|
||||
"tomcat" => {
|
||||
if let Some(jdk) = &jdk {
|
||||
c.env.entry("JAVA_HOME".into()).or_insert_with(|| jdk.home.to_string_lossy().into_owned());
|
||||
|
||||
@@ -383,6 +383,30 @@ fn fake_jdk(dir: &Path) {
|
||||
std::fs::write(dir.join("bin").join(crate::exe("javac")), "").unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn jar_application_runs_on_the_project_jdk_unless_a_jre_is_chosen() {
|
||||
let tmp = tempfile::tempdir().unwrap();
|
||||
let jdk = tmp.path().join("jbr");
|
||||
fake_jdk(&jdk);
|
||||
let mut s = Settings::default();
|
||||
let mut configs = vec![run("jar-application", "java", &["-jar", "app.jar"])];
|
||||
apply_to_run_configs(&mut configs, tmp.path(), &s);
|
||||
assert_eq!(configs[0].command, "java", "java on PATH without a project JDK");
|
||||
|
||||
s.languages.java.jdk = jdk.to_string_lossy().into_owned();
|
||||
let chosen = tmp.path().join("other/bin/java").to_string_lossy().into_owned();
|
||||
let mut configs = vec![
|
||||
run("jar-application", "java", &["-jar", "app.jar"]),
|
||||
run("jar-application", &chosen, &["-jar", "app.jar"]),
|
||||
];
|
||||
apply_to_run_configs(&mut configs, tmp.path(), &s);
|
||||
let java = crate::java::java_executable(&project_jdk(tmp.path(), &s).unwrap().home).to_string_lossy().into_owned();
|
||||
assert_eq!(configs[0].command, java);
|
||||
assert_eq!(configs[1].command, chosen, "an explicit JRE stays");
|
||||
// Saved as the default, so it follows a later Project JDK change.
|
||||
assert_eq!(without_derived(&configs[0], tmp.path(), &s).command, "java");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn project_jdk_and_maven_settings() {
|
||||
if cfg!(windows) {
|
||||
|
||||
@@ -188,7 +188,7 @@ export const jarApplicationType: RunConfigTypeContribution = {
|
||||
{ key: "jarPath", label: "Path to JAR", mono: true, required: true, browse: "file" },
|
||||
vmOptionsField(),
|
||||
{ key: "programArgs", label: "Program arguments", mono: true },
|
||||
{ ...jreField, options: [{ value: "", label: "Default (java on PATH)" }] },
|
||||
{ ...jreField, options: [{ value: "", label: "Default (the project's JDK)" }] },
|
||||
],
|
||||
commandLine(p) {
|
||||
return {
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
"JAR Application": "JAR Application",
|
||||
"Run an executable JAR": "Run an executable JAR",
|
||||
"Path to JAR": "Path to JAR",
|
||||
"Default (java on PATH)": "Default (java on PATH)",
|
||||
"Default (the project's JDK)": "Default (the project's JDK)",
|
||||
"Stream Sample TUI": "Stream Sample TUI",
|
||||
"Arduino tool '{configured}' was not found. Set its path in Settings > Languages & Frameworks > Language Servers, or in settings.toml under languages.arduino.": "Arduino tool '{configured}' was not found. Set its path in Settings > Languages & Frameworks > Language Servers, or in settings.toml under languages.arduino.",
|
||||
"Arduino tool '{name}' was not found on PATH or in Arduino IDE. Install Arduino IDE 2, or set its path in Settings > Languages & Frameworks > Language Servers or settings.toml under languages.arduino.": "Arduino tool '{name}' was not found on PATH or in Arduino IDE. Install Arduino IDE 2, or set its path in Settings > Languages & Frameworks > Language Servers or settings.toml under languages.arduino.",
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
"JAR Application": "JAR 应用程序",
|
||||
"Run an executable JAR": "运行可执行 JAR",
|
||||
"Path to JAR": "JAR 路径",
|
||||
"Default (java on PATH)": "默认(PATH 中的 java)",
|
||||
"Default (the project's JDK)": "默认(项目 JDK)",
|
||||
"Arduino tool '{configured}' was not found. Set its path in Settings > Languages & Frameworks > Language Servers, or in settings.toml under languages.arduino.": "未找到 Arduino 工具“{configured}”。请在设置 > 语言和框架 > 语言服务器中配置其路径,或在 settings.toml 的 languages.arduino 下配置。",
|
||||
"Arduino tool '{name}' was not found on PATH or in Arduino IDE. Install Arduino IDE 2, or set its path in Settings > Languages & Frameworks > Language Servers or settings.toml under languages.arduino.": "在 PATH 或 Arduino IDE 中未找到 Arduino 工具“{name}”。请安装 Arduino IDE 2,或在设置 > 语言和框架 > 语言服务器中配置其路径,也可在 settings.toml 的 languages.arduino 下配置。",
|
||||
"Install Arduino IDE 2 (includes Arduino Language Server, Arduino CLI and clangd) and the board's core. Configure the server command and arguments in Settings > Languages & Frameworks > Language Servers, or set languages.arduino.cli, languages.arduino.clangd, languages.arduino.languageServer and languages.arduino.cliConfig in settings.toml. Set the board FQBN in sketch.yaml or languages.arduino.fqbn in settings.toml.": "请安装 Arduino IDE 2(包含 Arduino Language Server、Arduino CLI 和 clangd)及开发板核心。在设置 > 语言和框架 > 语言服务器中配置服务器命令和参数,或在 settings.toml 中设置 languages.arduino.cli、languages.arduino.clangd、languages.arduino.languageServer 和 languages.arduino.cliConfig。在 sketch.yaml 或 settings.toml 的 languages.arduino.fqbn 中设置开发板 FQBN。",
|
||||
|
||||
Reference in new issue
Block a user