工程结构:
有两种方式:
Java代码中的类,要获取Resource资源文件目录下文件
绝对路径寻址
String s1 = this.getClass().getResource("/test.pxml").getPath();
注意这个 / 址的是根目录,用绝对路径,可能会出现的问题是,你的程序在windows上可以用,但是在linux不能用,原因在于,你这根目录在windows环境址你的src目录
放到linux环境,就可能执行你linux的根目录了,会导致 file not exist
针对上面的问题,可以考虑相对路径寻址:
例子:
job.setJarByClass(Runner.class); String jarPath = this.getClass().getClassLoader().getResource("hadoop.jar").getPath(); job.setJar(jarPath);
项目需要在 resource目录下面放一个hadoop 包, 这包远程提交到集群上运行,
上面就采用了相对路径
根据该路径,可以找到对应的hadoop.jar文件。