diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index c773c18..3399fa4 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -3,7 +3,6 @@ all(not(debug_assertions), target_os = "windows"), windows_subsystem = "windows" )] -use std::process::Command; use open; mod downloader; @@ -53,10 +52,10 @@ fn run_program(path: String) { } #[tauri::command] -fn run_jar(path: String) { +fn run_jar(path: String, execute_in: String) { // Open the program from the specified path. - match open::with("/k java -jar ".to_string() + &path, "C:\\Windows\\System32\\cmd.exe") { + match open::with(format!("/k cd /D \"{}\" & java -jar {}", &execute_in, &path).to_string(), "C:\\Windows\\System32\\cmd.exe") { Ok(_) => (), - Err(e) => println!("Failed to open jar ({}): {}", &path, e), + Err(e) => println!("Failed to open jar ({} from {}): {}", &path, &execute_in, e), }; } \ No newline at end of file diff --git a/src/ui/components/ServerLaunchSection.tsx b/src/ui/components/ServerLaunchSection.tsx index d1efd5f..4eb1d76 100644 --- a/src/ui/components/ServerLaunchSection.tsx +++ b/src/ui/components/ServerLaunchSection.tsx @@ -67,8 +67,21 @@ export default class ServerLaunchSection extends React.Component if (!config.grasscutter_path) return + let jarFolder = config.grasscutter_path + + if (jarFolder.includes('/')) { + jarFolder = jarFolder.substring(0, config.grasscutter_path.lastIndexOf('/')) + } else { + jarFolder = jarFolder.substring(0, config.grasscutter_path.lastIndexOf('\\')) + } + + console.log(jarFolder) + // Launch the jar - await invoke('run_jar', { path: config.grasscutter_path }) + await invoke('run_jar', { + path: config.grasscutter_path, + executeIn: jarFolder + }) } render() {