Java版GDAL中Native library load failed.问题的解决方案

1 篇文章 0 订阅

#Java版GDAL中Native library load failed.问题的解决方案


本文使用官方网站编译好的GDAL1.10Java版本,包含下图中红色方框所包含的gdal.jar核心包以及gdalconstjni.dll、gdaljni.dll、ogrjni.dll、osrjni.dll共5个文件,gdal110.dll和其他DLL文件是GDAL库在使用时所必须的类库,gdal-data目录是GDAL官方的数据目录。
GDAL核心类库文件
在Eclipse中新建一个Java工程,使用GDAL库时,首先将上图所示的文件拷贝到工程的libs目录中,然后添加gdal.jar的引用,入下图所示。
这里写图片描述
编写如下测试程序:

import org.gdal.gdal.Band;
import org.gdal.gdal.Dataset;
import org.gdal.gdal.Driver;
import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconstConstants;

public class Test {
public static void main(String[] args) {
		
		gdal.AllRegister();
		
		String filename_tif = "boulder.tif";
		//使用只读方式打开图像
		Dataset hDataset = gdal.Open(filename_tif, gdalconstConstants.GA_ReadOnly);
		if (hDataset == null) {
			System.err.println("GDALOpen failed - " + gdal.GetLastErrorNo());
			System.err.println(gdal.GetLastErrorMsg());
			System.exit(1);
		}
		
		//输出图像的格式信息
		Driver hDriver = hDataset.GetDriver();
		System.out.println("Driver:" + hDriver.getShortName() + "/" + hDriver.getLongName());
		//输出图像的大小和波段数
		int iXSize = hDataset.getRasterXSize();
		int iYSize = hDataset.getRasterYSize();
		int iBandCount = hDataset.getRasterCount();
		System.out.println("Size is " + iXSize + ", "+iYSize+", "+ iBandCount);
		Band band = hDataset.GetRasterBand(1);
		int iType = band.GetRasterDataType();
		System.out.println(iType + "/n");
		//读取一行数据
		int buf[] = new int[iXSize];
		band.ReadRaster(0, 0, iXSize, 1, buf);
		hDataset.delete();
		
		//可选
		gdal.GDALDestroyDriverManager();
		
	}
}

测试运行,会提示如下图所示的错误:
这里写图片描述

错误提示中说在java的类库路径中找不到gdaljni库,这时,需要在项目的Java Build Path中进行如下配置,打开gdal.jar包引用的“Native library location”项选择“Edit”,在弹出的框中选择“Workspace”中本项目中保存GDAL类库的文件夹目录,然后保存:
这里写图片描述
这时,再次运行代码,就可以正常调用GDAL类库,并输出如下结果:
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "cannot load library gdal19.dll"是指在加载gdal19.dll库时出现问题gdal19.dll是一个与GIS(地理信息系统)相关的库文件。这个问题可能由以下几种原因引起: 1. 缺少gdal19.dll文件。如果该文件不存在于计算机系统,无法加载该库文件。请确保gdal19.dll文件存在于正确的路径下。 2. gdal19.dll文件损坏。如果该文件损坏或损坏的部分无法被识别,加载过程会失败。可以尝试重新下载gdal19.dll文件,并确保文件完整无误。 3. 应用程序与gdal19.dll文件不兼容。某些应用程序需要特定本的gdal19.dll文件才能正常运行。如果使用了不兼容的本,则会出现加载错误。请查看软件的系统要求,并确保使用正确的gdal19.dll本。 4. 环境变量设置错误。如果计算机系统的环境变量设置有问题,可能会导致无法加载库文件。请检查环境变量设置,并确保相关路径正确配置。 针对该问题,可以尝试以下解决方法: 1. 检查gdal19.dll文件。确保该文件存在于正确的位置,并且没有损坏。 2. 重新下载gdal19.dll文件。如果文件确实丢失或损坏,从可靠的源重新下载该文件。 3. 更新应用程序。确保应用程序与gdal19.dll文件兼容,并尝试升级或更新软件本。 4. 检查环境变量设置。确保计算机的环境变量包含正确的路径,以便正确加载gdal19.dll库文件。 总结起来,"cannot load library gdal19.dll"问题通常是由于文件缺失、文件损坏、本不兼容或环境变量设置错误等原因引起的。根据具体情况,可以采取相应的解决方法来解决该问题。 ### 回答2: "cannot load library gdal19.dll"错误通常出现在使用GDAL库时,由于系统无法加载gdal19.dll库文件导致。以下是可能解决此问题的几种方法: 1. 确认文件路径:首先确保gdal19.dll库文件位于正确的文件路径。您可以使用文件资源管理器搜索该文件,确保它存在于您正在使用的项目或应用程序的文件路径下。 2. 检查本兼容性:确保使用的gdal19.dll库文件与您的操作系统和安装程序的本兼容。不同本的库文件可能与操作系统或应用程序不兼容,导致加载错误。 3. 更新GDAL库文件:尝试更新您使用的GDAL库文件。您可以从GDAL官方网站或其他可靠来源下载最新本的GDAL库,并替换掉旧本的gdal19.dll文件。 4. 确认环境变量:确保系统的环境变量包含正确的GDAL库文件路径。您可以在系统的环境变量设置添加GDAL库文件的正确路径,并重启您的应用程序以使更改生效。 5. 重新安装应用程序:如果上述方法都没有成功解决问题,您可以尝试重新安装使用GDAL库的应用程序。重新安装可能会修复任何缺失或损坏的文件,并解决库加载错误。 请注意,上述方法根据情况而异,可能需要您具体的操作系统和应用程序环境来进行调整。如果问题仍然存在,您可能需要进一步调查与GDAL库文件的使用和加载相关的特定问题。 ### 回答3: "cannot load library gdal19.dll" 是一个常见的错误信息,通常出现在使用GDAL库时。这个错误表示系统无法加载gdal19.dll库文件。 这个错误可能有以下几个常见原因: 1. 文件缺失:gdal19.dll文件可能不存在于指定的路径。解决方法是重新安装GDAL库,确保正确地安装了这个文件。 2. 文件路径问题:系统无法在环境变量找到gdal19.dll的路径。可以通过检查环境变量设置,确保GDAL库的正确路径已添加到环境变量。 3. 文件冲突:如果系统存在多个gdal19.dll文件,可能导致冲突。解决方法是删除冲突文件,并确保只有一个正确本的gdal19.dll存在。 4. 兼容性问题:某些程序可能不兼容特定本的gdal19.dll文件。尝试更新GDAL库或与相关应用程序的开发者联系以解决兼容性问题。 为了解决这个问题,你可以尝试以下步骤: 1. 确保gdal19.dll文件存在,并位于正确的路径。 2. 检查环境变量设置,确保已添加GDAL库的正确路径。 3. 如果存在多个gdal19.dll文件,删除冲突文件,只保留一个正确本。 4. 尝试更新GDAL库或与相关程序的开发者联系以解决兼容性问题。 总之,解决"cannot load library gdal19.dll"错误通常需要检查文件的存在性和路径设置,并可能涉及更新库或解决兼容性问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值