Могу ли я спросить, почему вы пытаетесь открыть файл?
Мне нравится следить за развитием Linux (из любопытства, я не разработчик ядра, я делаю Java), и я ранее рассматривал этот вопрос. Я смог найти сообщение LKML об этом, в основном упомянув, что это обычно плохая идея. Я почти уверен, что LWN покрыл его в прошлом году, но мне трудно найти статью.
Если это частный модуль (например, для некоторых пользовательских аппаратных средств, и модуль не будет распределяется), тогда вы можете это сделать, но у меня создается впечатление, что если вы собираетесь отправить свой код на магистраль, это может быть не принято.
Эван Теран упоминает sysfs, который выглядит как хорошая идея для меня.
EDIT:
ОК, я нашел статью, которую я искал, это из Linux Journal . Это объясняет, почему делать такие вещи, как правило, плохая идея, а затем продолжает рассказывать вам, как это сделать в любом случае.
Попытайтесь обратиться к этому такому вопросу , читая ваш код, первое, что я думаю, это попытаться использовать JMX (Java Management eXtension)
Что-то вроде этого:
[110 ]РЕДАКТИРОВАТЬ
Если вам нужно получить номер сеанса локально , ваш код должен быть в порядке, попробуйте код, но получать контекст во время выполнения. Переопределите метод init:
@Override
public void init(final ServletConfig config) throws ServletException {
context = config.getServletContext().getContextPath();
}
Затем передайте его как параметр ObjectName:
ObjectName objectName = new ObjectName("Catalina:type=Manager,context="+context+",host=localhost");