@@ -10,64 +10,32 @@ use crate::util::fetch::{fetch_advanced, fetch_json};
10
10
use crate :: util:: io;
11
11
use crate :: util:: jre:: extract_java_majorminor_version;
12
12
use crate :: {
13
- state:: JavaGlobals ,
14
13
util:: jre:: { self , JavaVersion } ,
15
14
LoadingBarType , State ,
16
15
} ;
17
16
18
- pub const JAVA_8_KEY : & str = "JAVA_8" ;
19
- pub const JAVA_17_KEY : & str = "JAVA_17" ;
20
- pub const JAVA_18PLUS_KEY : & str = "JAVA_18PLUS" ;
21
-
22
- // Autodetect JavaSettings default
23
- // Using the supplied JavaVersions, autodetects the default JavaSettings
24
- // Make a guess for what the default Java global settings should be
25
- // Since the JRE paths are passed in as args, this handles the logic for selection. Currently this just pops the last one found
26
- // TODO: When tauri compiler issue is fixed, this can be be improved (ie: getting JREs in-function)
27
- pub async fn autodetect_java_globals (
28
- mut java_8 : Vec < JavaVersion > ,
29
- mut java_17 : Vec < JavaVersion > ,
30
- mut java_18plus : Vec < JavaVersion > ,
31
- ) -> crate :: Result < JavaGlobals > {
32
- // Simply select last one found for initial guess
33
- let mut java_globals = JavaGlobals :: new ( ) ;
34
- if let Some ( jre) = java_8. pop ( ) {
35
- java_globals. insert ( JAVA_8_KEY . to_string ( ) , jre) ;
36
- }
37
- if let Some ( jre) = java_17. pop ( ) {
38
- java_globals. insert ( JAVA_17_KEY . to_string ( ) , jre) ;
39
- }
40
- if let Some ( jre) = java_18plus. pop ( ) {
41
- java_globals. insert ( JAVA_18PLUS_KEY . to_string ( ) , jre) ;
42
- }
43
-
44
- Ok ( java_globals)
45
- }
46
-
47
17
// Searches for jres on the system given a java version (ex: 1.8, 1.17, 1.18)
48
18
// Allow higher allows for versions higher than the given version to be returned ('at least')
49
19
pub async fn find_filtered_jres (
50
- version : & str ,
51
- jres : Vec < JavaVersion > ,
52
- allow_higher : bool ,
20
+ java_version : Option < u32 > ,
53
21
) -> crate :: Result < Vec < JavaVersion > > {
54
- let version = extract_java_majorminor_version ( version) ?;
22
+ let jres = jre:: get_all_jre ( ) . await ?;
23
+
55
24
// Filter out JREs that are not 1.17 or higher
56
- Ok ( jres
57
- . into_iter ( )
58
- . filter ( |jre| {
59
- let jre_version = extract_java_majorminor_version ( & jre. version ) ;
60
- if let Ok ( jre_version) = jre_version {
61
- if allow_higher {
62
- jre_version >= version
25
+ Ok ( if let Some ( java_version) = java_version {
26
+ jres. into_iter ( )
27
+ . filter ( |jre| {
28
+ let jre_version = extract_java_majorminor_version ( & jre. version ) ;
29
+ if let Ok ( jre_version) = jre_version {
30
+ jre_version. 1 == java_version
63
31
} else {
64
- jre_version == version
32
+ false
65
33
}
66
- } else {
67
- false
68
- }
69
- } )
70
- . collect ( ) )
34
+ } )
35
+ . collect ( )
36
+ } else {
37
+ jres
38
+ } )
71
39
}
72
40
73
41
#[ theseus_macros:: debug_pin]
@@ -176,17 +144,6 @@ pub async fn auto_install_java(java_version: u32) -> crate::Result<PathBuf> {
176
144
}
177
145
}
178
146
179
- // Get all JREs that exist on the system
180
- pub async fn get_all_jre ( ) -> crate :: Result < Vec < JavaVersion > > {
181
- Ok ( jre:: get_all_jre ( ) . await ?)
182
- }
183
-
184
- pub async fn validate_globals ( ) -> crate :: Result < bool > {
185
- let state = State :: get ( ) . await ?;
186
- let settings = state. settings . read ( ) . await ;
187
- Ok ( settings. java_globals . is_all_valid ( ) . await )
188
- }
189
-
190
147
// Validates JRE at a given at a given path
191
148
pub async fn check_jre ( path : PathBuf ) -> crate :: Result < Option < JavaVersion > > {
192
149
Ok ( jre:: check_java_at_filepath ( & path) . await )
@@ -196,14 +153,13 @@ pub async fn check_jre(path: PathBuf) -> crate::Result<Option<JavaVersion>> {
196
153
pub async fn test_jre (
197
154
path : PathBuf ,
198
155
major_version : u32 ,
199
- minor_version : u32 ,
200
156
) -> crate :: Result < bool > {
201
157
let jre = match jre:: check_java_at_filepath ( & path) . await {
202
158
Some ( jre) => jre,
203
159
None => return Ok ( false ) ,
204
160
} ;
205
- let ( major, minor ) = extract_java_majorminor_version ( & jre. version ) ?;
206
- Ok ( major == major_version && minor == minor_version )
161
+ let ( major, _ ) = extract_java_majorminor_version ( & jre. version ) ?;
162
+ Ok ( major == major_version)
207
163
}
208
164
209
165
// Gets maximum memory in KiB.
0 commit comments