如何用java代码设置加载指定文件路径的undertow.txt文件?

Jfinal启动时,我想使用java代码设置让其加载指定文件路径的undertow.txt文件,只通过java代码办到,这个要怎么弄?

 	File file = new File("");
    	try {
    		
			String filePath = file.getCanonicalPath();
			System.out.println("项目路径:"+filePath);
			UndertowServer.create(AppConfig.class, filePath+"\\config\\undertow.txt") ;
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 UndertowServer.start(AppConfig.class, 8080, true);

以上代码运行,会直接报“com.jfinal.server.undertow.PropExt$FileNotFoundException: Properties file not found in classpath:”异常。方法不对么?能用绝对路径么?




评论区

JFinal

2020-03-07 19:42

使用 UndertowServer.create(..., ..., "/var/my/path/undertow.txt").start();

create 方法支持指定的配置文件

tctc4869

2020-03-07 21:04

@JFinal 你确定是这个么?我根据eclipse的代码提示里发现,没有发现UndertowServer.create方法的重载里有三个形式参数的方法。而且/var/my/path/undertow.txt,这种看起来应该是指项目内d:/WorkSpace/xx项目/src/mian/resources/var/my/path/undertow.txt,但我想要的设置加载undertow.txt文件所在的路径不是位于“src/mian/resources”目录内,而是以外的其他的目录。我想要用绝对路径作为参数,而不是classpath

JFinal

2020-03-07 21:13

@tctc4869 你希望是读取项目目录之外的配置文件,可以通过下面的步骤来扩展:
1: 创建一个 UndertowConfig 的子类,覆盖其中的 createPropExt(String undertowConfig) 方法,让这个方法从你指定的地方读配置文件

2:假定你创建的子类为 MyConfig,那么启动方式如下:
UndertowServer.create(MyConfig.class).start();

热门反馈

扫码入社