用maven构建的jar文件找不到配置文件

时间:2018-11-16 07:39:44

标签: java maven jar

我用Maven构建了一个jar文件。我在jar文件的唯一类中使用以下代码来尝试访问配置文件。

import VueRouter from 'vue-router';

let routes = [
  {
    path: '/',
    name: 'home',
    component: require('./components/views/pages/home.vue')
  },
  {
    path: '/faq',
    name: 'faq',
    component: require('./components/views/pages/faq.vue')
  },
  {
    path: '/register',
    name: 'register',
    component: require('./components/views/pages/register.vue')
  },
  {
    path: '/login',
    name: 'login',
    component: require('./components/views/pages/login.vue')
  },
  {
    path: '/testPage',
    name: 'testPage',
    component: require('./components/views/pages/testPage.vue')
  }
]

export default new VueRouter({
  routes,
  linkActiveClass: 'is-active',
  mode: 'history'
});

config.properties文件位于路径/

中的jar文件中。

我没有看到任何错误消息。但是,当我尝试访问Properties对象中的值时,这些值为null。

Route::get('/{vue?}', function () {
    return view('index');
})->where('vue', '[\/\w\.-]*');

Route::get('/reservation/date/{date}', 'ReservationContoller@getScheduleForDate'); //route in question
Route::resource('/reservation', 'ReservationController');
Route::get ('/admin', 'AdminController@index');
Route::get('/home', 'HomeController@index')->name('home');
Auth::routes();

serverUrl为空。

关于如何在jar文件中获取配置文件中的值的任何建议?

2 个答案:

答案 0 :(得分:0)

通常在maven中,资源位于src / main / resources下。

然后,您可以使用类加载器访问这些资源:

try (InputStream in = Myclass.class.getClassLoader().getResourceAsStream("config.properties") {
    //doSomething
}

答案 1 :(得分:0)

在意识到以下方法仅适用于在类路径中加载文件之前,我面临着同样的问题。

InputStream is = Myclass.class.getClassLoader().getResourceAsStream("/config.properties");

对于选择文件而不管它们是否在类路径中,我使用Apache FileUtils。例如,我使用了关注,它就像一个魅力。

String str = FileUtils.readFileToString(new File(path_to_your_file), "UTF-8");
IOUtils.toInputStream(str, "UTF-8"); // if you need InputStream object

除了readFileToString以外,您还可以查看FileUtils提供的其他API