java runnable jar文件不阅读我的config.properties文件数据,如url等

qxsslcnc  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(136)

My project structuremy project code
当config.propertiesjar文件在任何其他系统中运行时,我希望运行www.example.com文件
我的项目代码: Package 实践;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.time.Duration;
import java.util.Properties;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import io.github.bonigarcia.wdm.WebDriverManager;

public class Libraries {

    public static void loginPage() throws IOException
    {
        WebDriverManager.chromedriver().setup();
        WebDriver driver = new ChromeDriver();
        driver.manage().window().maximize();

        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
        Properties prop = new Properties();
        InputStream input = new FileInputStream("C:\\Users\\Satyakiran.Vogeti\\eclipse-workspace\\FrameWorkPractice\\src\\test\\java\\config\\config.properties");
        prop.load(input);

        driver.get(prop.getProperty("url"));
        driver.findElement(By.id("username")).sendKeys(prop.getProperty("username"));
        driver.findElement(By.id("password")).sendKeys(prop.getProperty("password"));
        driver.findElement(By.id("kc-login")).click();
    }

}
zzwlnbp8

zzwlnbp81#

既然您讨论了在其他系统上运行它,那么您喜欢讨论将其打包到jar文件中。
在这种情况下,你的代码不应该放在/src/test/java中,而应该放在src/main/java中,配置文件放在/src/main/resources中,这样它也会被打包到jar中,然后你可以使用
InputStream input = getClass().getClassLoader().getResourceAsStream("config/config.properties");
编辑:由于main方法处于静态上下文中,因此使用Libraries.class替换getClass()

相关问题