读取属性文件时发生Java空指针异常
读取Config.properties文件时出现java空指针以下异常。 java扩展了TestBase.java,调用TestBase构造函数来加载配置属性,并调用initializeTestBase方法来从配置文件获取属性。 java.lang.NullPointerException 位于com.crm.testbase.testbase.initializeTestBase(testbase.java:35)读取属性文件时发生Java空指针异常,java,nullpointerexception,Java,Nullpointerexception,读取Config.properties文件时出现java空指针以下异常。 java扩展了TestBase.java,调用TestBase构造函数来加载配置属性,并调用initializeTestBase方法来从配置文件获取属性。 java.lang.NullPointerException 位于com.crm.testbase.testbase.initializeTestBase(testbase.java:35) 在TestBase.java中,有一个名为prop的静态变量未初始化
在TestBase.java中,有一个名为
prop
的静态变量未初始化
然后,在构造函数的try块中,执行以下操作:
Properties prop = new Properties();
这将创建一个名为prop
的新局部变量,该变量将隐藏静态变量,并且根本不修改静态prop
变量,因此它将保持为空。该try块中引用prop
的所有操作都使用该局部变量,而不是静态变量
然后,当你到达
String browser=prop.getProperty("browser");
您试图从该空变量中调用一个方法,这将导致您看到的异常
解决方案是将构造函数更改为具有:
prop = new Properties()
添加了Java代码段如果运行代码,则没有src/main/Java文件夹。请尝试class.getResources()。顺便说一句,属性文件应该在src/main/resources中。
RemoteTestNG] detected TestNG version 6.11.0
printing config=chrome
calling initalize base
FAILED CONFIGURATION: @BeforeMethod setup
java.lang.NullPointerException
at com.crm.testbase.TestBase.initializeTestBase(TestBase.java:30)
at com.crm.testcases.LoginTest.setup(LoginTest.java:24)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
Properties prop = new Properties();
String browser=prop.getProperty("browser");
prop = new Properties()