我正在尝试从属性文件中获取属性(键:值对),但出现了空指针异常。
Properties prop;
@BeforeTest
public void beforeTest() throws IOException {
prop=new Properties();
FileInputStream objfile = new FileInputStream(
"\\resources\\config.properties");
prop.load(objfile);
objfile.close();
}
文件夹结构为
答案 0 :(得分:0)
您应该将属性作为资源加载,因为它们是项目的一部分。无需使用完整的文件系统路径。
Properties prop = new Properties();
@BeforeTest
public void beforeTest() throws Exception {
try (InputStream in = getClass().getResourceAsStream("/Config.properties") {
prop.load(in);
}
}
请注意,不建议使用默认的Java包以避免类路径冲突。将Config.properties
移至命名包即可解决该问题。
答案 1 :(得分:0)
您是否尝试过在调试模式下运行?好像您的prop对象为null。因此,没有什么可加载的。您需要在方法内部创建Properties对象。将构造函数移到方法内部,然后检查。
@BeforeTest
public void beforeTest() throws IOException {
Properties prop=new Properties();
FileInputStream objfile = new FileInputStream(
"C:\\Users\\psailaja\\workspace\\TestPropertiesAndKeyword\\Config.properties");
prop.load(objfile);
objfile.close();
}
答案 2 :(得分:0)
尝试从属性文件获取 <div class="container">
<nav class="navbar sticky-top">
<div class="grid">
<div class="row">
<div class="col-md-4">
<a class="btn btn-primary" data-toggle="collapse" href="#collapse-top-menu" role="button" aria-expanded="false" aria-controls="collapse-top-menu">
<img src="img/baseline-menu-24px.svg">
</a>
</div>
<div class="col-md-8 pull-right">
<a class="navbar-brand" href="#">
<img src="img/bootstrap-solid.svg" width="40" height="40">
<span>Test</span>
</a>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="collapse" id="collapse-top-menu">
<input type="text" class="form-control" id="input-top-collapse-search" placeholder="Cosa stai cercando?">
</div>
</div>
</div>
</div>
</nav>
</div>
.collapse input{
width:100%;
}
时,您会得到空指针异常。您必须在这里注意以下几个事实:
properties(key:value pairs)
更改为 config.properties
config.property
.
的Properties
类型。这是您的工作代码:
prop
答案 3 :(得分:0)
感谢您的回复
该问题是由于未对从属性文件中提取的变量声明有效的访问修饰符(公共静态)而引起的。 以下几点没有问题