java调用kettle自定义kettle.properties配置文件路径
java调用kettle自定义kettle.properties配置文件路径
默认路径
java调用kettle的jar包时,在初始化环境的时候,会在指定路径创建并加载kettle的kettle.properties
文件,该文件的默认位置为 ${user.dir}/.kettle/kettle.properties
,在不同的系统上,${user.dir}
的默认位置如下:
系统 | 路径 |
---|---|
Windows | C:\Users\用户\.kettle\kettle.properties |
Macos | /Users/用户名/.kettle/kettle.properties |
Linux | /home/用户名/.kettle/kettle.properties |
但是如果你设置了KETTLE_HOME
这个环境变量,Kettle将会在该路径下查找或创建kettle.properties文件:${KETTLE_HOME}/.kettle/kettle.properties
源码如下:
/**
* Looks up the user's home directory (or KETTLE_HOME) for every invocation. This is no longer a static property so
* the value may be set after this class is loaded.
*
* @return The path to the users home directory, or the System property {@code KETTLE_HOME} if set.
*/
public static String getUserHomeDirectory() {return NVL( System.getenv( "KETTLE_HOME" ), NVL( System.getProperty( "KETTLE_HOME" ),System.getProperty( "user.home" ) ) );
}
修改默认路径
直接设置 KETTLE_HOME
即可
public static void initEnvironment() throws IOException, KettleException {System.setProperty("KETTLE_HOME","/Volumes/DATA/temp/kettle");KettleEnvironment.init();String directory = Const.getKettleDirectory();System.out.println("KETTLE_HOME:"+directory);}
log输出如下
KETTLE_HOME:/Volumes/DATA/temp/kettle/.kettle
默认加了.kettle
路径
如果不想要.ketttle这个目录,可以参考如下方法:
源码如下
public static String getKettleDirectory() {return getUserHomeDirectory() + FILE_SEPARATOR + getUserBaseDir();}/*** Determines the Kettle directory in the user's home directory.** @return The Kettle directory.*/public static String getUserBaseDir() {return BasePropertyHandler.getProperty( "userBaseDir", ".kettle" );}
源码中未找到设置 userBaseDir
的地方,但是可以利用java的反射来修改
public static void initEnvironment() throws IOException, KettleException {System.setProperty("KETTLE_HOME","/Volumes/DATA/temp");//反射修改 userBaseDirBasePropertyHandler instance = BasePropertyHandler.getInstance();Object instanceHandler = ReflectUtil.invoke(instance, "getInstanceHandler");java.util.LinkedList<OverlayProperties> propList = (java.util.LinkedList<OverlayProperties>) ReflectUtil.getFieldValue(instanceHandler, "propList");OverlayProperties overlayProperties = new OverlayProperties("");overlayProperties.setProperty("userBaseDir","kettle");propList.add(overlayProperties);//环境初始化KettleEnvironment.init();String directory = Const.getKettleDirectory();System.out.println("directory:"+directory);// 获取配置参数String params = EnvUtil.getSystemProperty("KETTLE_LAZY_REPOSITORY");System.out.println("params:"+params);}
日志输出如下
directory:/Volumes/DATA/temp/kettle
params:false
java调用kettle自定义kettle.properties配置文件路径相关推荐
- java使用properties_Java中使用Properties配置文件的简单方法
properties Properties文件是java中的一种配置文件,文件后缀为".properties",文件的内容格式是"key=value"的格式,用 ...
- java修改配置文件参数_在java类中获取在.properties配置文件中设置的参数
如何获取.properties配置文件中的参数,我在网上查了半天没弄明白,后来在以前的项目中找到了,就写下来,避免遗忘. 1.配置文件:message_product.properties total ...
- java 注解加载配置文件_Spring的Java配置方式和读取properties配置文件
java配置是spring4.x推荐的配置方式,可以完全替代xml配置. 1.注解 @Configuration 和 @Bean spring的java配置方式是通过@Configuration和@B ...
- java调用kettle批量执行
java调用kettle批量执行 之前只做了一个java调用单一ktr的例子,在用web程序控制ETL数据抽取过程的时候,难免会遇到要执行一个复选框列表的ktr,那么前段传过来的就不仅仅是一个ktr: ...
- java 调用kettle job 传参_java调用kettle向job(任务)和transformation(转换)传递参数实例...
虽然网上文章有说java可以传递参数给kettle,不过只找到了传递参数给转换的文章,没有讲参数传递给job,kettle中如何使用java传递的参数.今天就以上问题,一并共享. /** * 本测试类 ...
- java调用kettle例子_Kettle API - Java调用示例
Kettle API - Java调用示例 对向前兼容性的推荐:如果想要动态地创造Transformation (例如:从元数据),使用XML文件方法(KTR)而不是使用API.XML文件兼容Kett ...
- 【转载】java读取.properties配置文件的几种方法
读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的): 一.通过jdk提供的java.util.Properties类. 此类继承自java.uti ...
- java基础5:工厂模式、单例模式、File文件类、递归、IO流、Properties配置文件、网络编程、利用IO流模拟注册登录功能、关于反射、JDK动态代理
1.工厂模式 23种java设计模式之一 1)提供抽象类(基类) 2)提供一些子类,完成方法重写 3)提供一个接口:完成具体子类的实例化对象的创建,不能直接new子类,构造函数私有化. 优点:具体的子 ...
- java中使用配置文件_Java中使用Properties配置文件的简单方法
Java中使用Properties配置文件的简单方法 properties Properties文件是java中的一种配置文件,文件后缀为".properties",文件的内容格式 ...
最新文章
- Shell编程(week4_day1)--技术流ken
- “光名字就想了一年”,苹果三位高管谈M1芯片
- php微信回复乱码,php版微信公众平台回复中文出现乱码问题的解决方法
- activemq无账户密码登录配置修改
- 【控制】麦克纳姆轮 Mecanum 小车模型分析
- ue4sky时间_UE4 SkyLight RealTimeCapture浅析
- 机房系统(七)——【报表】
- linux文件读保护,Linux Rootkit实现文件保护
- BX、DI、SI、BP总结
- 垃圾回收算法与垃圾回收器
- 前端特效demo | 一起围观 10 种创意时钟
- sql经典题目(1)
- js高级学习笔记(b站尚硅谷)-15-闭包的剩余知识
- haneWIN搭建Win10 NFS服务器
- 配电网PMU优化配置与状态估计(Matlab代码实现)
- Cocos从零开发一个翻译插件
- 第一百二十一天 : varnish
- 如何让自己像打王者荣耀一样发了疯、拼了命、石乐志的学习?
- ztree通过ajax获取json并勾选checkbook
- 苹果WWDC将于6月8日夏季发布会苹果WWDC发布会直播地址