I agree 100% with @ingo-burk@ingo-burk's answer. Here are a few points on top of that.
You could load the paths from a .properties
file quite easily, for example given a properties file on the classpath:
# config.properties
paths = C:/xampp/xampp-control.exe|C:/Program Files/xampp/xampp-control.exe|C:/Program Files (x86)/xampp/xampp-control.exe
and this Java code:
private static final String PROPERTIES_FILENAME = "player.properties";
private static final String PATHS_PROPERTY = "paths";
private static final String ITEM_SEPARATOR = "|";
private String[] getPaths(String filename, String propName) throws IOException {
InputStream input = this.getClass().getClassLoader().getResourceAsStream(filename);
if (input == null) {
return new String[0];
}
Properties prop = new Properties();
prop.load(input);
input.close();
return prop.getProperty(propName, "").split(ITEM_SEPARATOR);
}
private String[] getPaths(String filename) throws IOException {
return getPaths(filename, PATHS_PROPERTY);
}
String[] getPaths() throws IOException {
return getPaths(PROPERTIES_FILENAME, PATHS_PROPERTY);
}
Notice that I changed all the path separators from \\
to /
. Java figures out the correct path separator in the operating system, and it's simpler to type this way.
Btw, if the executable is always called xampp-control.exe
then perhaps you can put that name in its own property, and remove the duplication from paths
.