Я пробовал некоторыми способами, но все еще не загружал библиотеку должным образом.
Наконец я обнаружил, что существует частный статический последняя переменная с именем JAVA_LIBRARY_PATH. Так что я не могу изменить это, поскольку это конечная переменная.
Уже попробовал реализацию ниже.
Код: Выделить всё
private static void loadAllDLLs(String libraryPathToAdd) {
final String[] userPath = initializePath("java.library.path");
String ps = System.getProperty("path.separator");
//check if the path to add is already present
for (String path : userPath) {
if (path.equals(libraryPathToAdd)) {
return;
}
}
StringBuilder pathBuilder = new StringBuilder();
for (String pathToAdd : userPath) {
pathBuilder.append(pathToAdd).append(ps);
}
pathBuilder.append(libraryPathToAdd);
// Update java.library.path once with all paths
String finalPath = pathBuilder.toString();
System.setProperty("java.library.path", finalPath);
String[] newUserPath = initializePath("java.library.path");
for (String up : newUserPath) {
System.out.println("New User Path ----> " + up);
}
}
Код: Выделить всё
private static void loadLibraries() {
String libraryPath = System.getProperty("java.library.path");
System.out.println("java.library.path: " + libraryPath);
try {
System.loadLibrary("webcam-capture-driver-native-64");
System.out.println("Library loaded successfully.");
} catch (UnsatisfiedLinkError e) {
System.err.println("Failed to load library: " + e.getMessage());
}
}
Код: Выделить всё
System.out.println("java.library.path: " + libraryPath);
Кто-нибудь уже сталкивался с этим или есть идеи, как с этим справиться?
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-java-21