Skip to content

Commit 26fa7d9

Browse files
davisusanibarkou
authored andcommitted
GH-34293: [Java] Error loading native libraries on Windows (#34312)
To fix error on Java native libraries related to `File.separator` on Windows OS: Use `/` to separate path instead of `\`. * Closes: #34293 Authored-by: david dali susanibar arce <davi.sarces@gmail.com> Signed-off-by: David Li <li.davidm96@gmail.com>
1 parent 79a897b commit 26fa7d9

6 files changed

Lines changed: 6 additions & 6 deletions

File tree

adapter/orc/src/main/java/org/apache/arrow/adapter/orc/OrcJniUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ static void loadOrcAdapterLibraryFromJar()
3939
synchronized (OrcJniUtils.class) {
4040
if (!isLoaded) {
4141
final String libraryToLoad =
42-
getNormalizedArch() + File.separator + System.mapLibraryName(LIBRARY_NAME);
42+
getNormalizedArch() + "/" + System.mapLibraryName(LIBRARY_NAME);
4343
final File libraryFile =
4444
moveFileFromJarToTemp(System.getProperty("java.io.tmpdir"), libraryToLoad, LIBRARY_NAME);
4545
System.load(libraryFile.getAbsolutePath());

c/src/main/java/org/apache/arrow/c/jni/JniLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ private synchronized void loadRemaining() {
8080

8181
private void load(String name) {
8282
final String libraryToLoad =
83-
getNormalizedArch() + File.separator + System.mapLibraryName(name);
83+
getNormalizedArch() + "/" + System.mapLibraryName(name);
8484
try {
8585
File temp = File.createTempFile("jnilib-", ".tmp", new File(System.getProperty("java.io.tmpdir")));
8686
temp.deleteOnExit();

dataset/src/main/java/org/apache/arrow/dataset/jni/JniLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ private synchronized void loadRemaining() {
7878

7979
private void load(String name) {
8080
final String libraryToLoad =
81-
getNormalizedArch() + File.separator + System.mapLibraryName(name);
81+
getNormalizedArch() + "/" + System.mapLibraryName(name);
8282
try {
8383
File temp = File.createTempFile("jnilib-", ".tmp", new File(System.getProperty("java.io.tmpdir")));
8484
temp.deleteOnExit();

dataset/src/test/java/org/apache/arrow/dataset/CsvWriteSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class CsvWriteSupport {
2929
private final Random random = new Random();
3030

3131
public CsvWriteSupport(File outputFolder) throws URISyntaxException {
32-
uri = new URI("file", outputFolder.getPath() + File.separator + "generated-" + random.nextLong() + ".csv", null);
32+
uri = new URI("file", outputFolder.getPath() + "/" + "generated-" + random.nextLong() + ".csv", null);
3333
}
3434

3535
public static CsvWriteSupport writeTempFile(File outputFolder, String... values)

dataset/src/test/java/org/apache/arrow/dataset/ParquetWriteSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public class ParquetWriteSupport implements AutoCloseable {
4848

4949
public ParquetWriteSupport(String schemaName, File outputFolder) throws Exception {
5050
avroSchema = readSchemaFromFile(schemaName);
51-
path = outputFolder.getPath() + File.separator + "generated-" + random.nextLong() + ".parquet";
51+
path = outputFolder.getPath() + "/" + "generated-" + random.nextLong() + ".parquet";
5252
uri = "file://" + path;
5353
writer = AvroParquetWriter
5454
.<GenericRecord>builder(new org.apache.hadoop.fs.Path(path))

gandiva/src/main/java/org/apache/arrow/gandiva/evaluator/JniLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ private static JniLoader setupInstance() throws GandivaException {
7171
private static void loadGandivaLibraryFromJar(final String tmpDir)
7272
throws IOException, GandivaException {
7373
final String libraryToLoad =
74-
getNormalizedArch() + File.separator + System.mapLibraryName(LIBRARY_NAME);
74+
getNormalizedArch() + "/" + System.mapLibraryName(LIBRARY_NAME);
7575
final File libraryFile = moveFileFromJarToTemp(tmpDir, libraryToLoad, LIBRARY_NAME);
7676
System.load(libraryFile.getAbsolutePath());
7777
}

0 commit comments

Comments
 (0)