I am looking to set the VM argument Djava.library.path programmatically. If this can't be done, what are the alternatives (if there are any)?
See Question&Answers more detail:osI am looking to set the VM argument Djava.library.path programmatically. If this can't be done, what are the alternatives (if there are any)?
See Question&Answers more detail:osThe solution is easy with this method:
public static void addLibraryPath(String pathToAdd) throws Exception {
Field usrPathsField = ClassLoader.class.getDeclaredField("usr_paths");
usrPathsField.setAccessible(true);
String[] paths = (String[]) usrPathsField.get(null);
for (String path : paths)
if (path.equals(pathToAdd))
return;
String[] newPaths = Arrays.copyOf(paths, paths.length + 1);
newPaths[newPaths.length - 1] = pathToAdd;
usrPathsField.set(null, newPaths);
}