在我的Web应用程序中,我必须向一组预定义用户发送电子邮件finance@xyz.com,因此我希望将其添加到.properties文件中并在需要时访问它.这是一个正确的程序,如果是这样,那么我应该在哪里放置这个文件?我正在使用Netbeans IDE,它有两个单独的文件夹用于源文件和JSP文件.
我已经在这里和那里阅读了源代码,但没有得到以下代码.基本上,我希望从文件夹'src'中读取一个名为'Administrator'的文本文件.我需要一个相对路径,因为这个项目可能会转移给另一个人.请耐心等待我.
public void staffExists () throws IOException
{
//http://stackoverflow.com/questions/2788080/reading-a-text-file-in-java
BufferedReader reader = new BufferedReader(new FileReader(getClass().getResourceAsStream ("/DBTextFiles/Administrator.txt")));
try
{
String line = null;
while ((line = reader.readLine()) != null)
{
if (!(line.startsWith("*")))
{
System.out.println(line);
}
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
finally
{
reader.close();
}
}
Run Code Online (Sandbox Code Playgroud) 我想用来从我的Web应用程序的外面读取属性文件.我在windows环境中的tomcat中部署了一个war文件,我可以使用以下代码从我的Web应用程序外部读取属性文件.
//(Method 1.)
String filePath =
new java.io.File( ".").getCanonicalPath()+"/webapps/strsproperties/strs.properties";
// or
//(Method 2.)
String filePath = new File(System.getProperty("catalina.base"))+ "/webapps/strsproperties/strs.properties";
InputStream inputStream = null;
inputStream = new FileInputStream(filePath);
properties.load(inputStream);
String application = properties.getProperty("applications");
Run Code Online (Sandbox Code Playgroud)
在上面两种情况下,我都可以在windows中读取filePath.
问题是我无法使用第一种方法(相对路径)进程在Linux中读取filePath.
有没有办法在Linux env中使用tomcat中的相对路径读取文件?
我正在尝试使用KeyStore从密钥库中获取信息.我使用此命令生成了密钥库:
keytool -genkey -alias server -keyalg RSA -keystore server.keystore -validity 365采取这个页面.
检查其信息keytool -list -v -keystore server.keystore我得到以下内容:
别名:server
创建日期:2014年4月30日
条目类型:PrivateKeyEntry
证书链长:1
证书[1] :(
其他信息在这里)
使用此命令:keytool -list -keystore server.keystore -alias server我得到这个:
服务器,2014年4月30日,PrivateKeyEntry,证书指纹(SHA1):28:65:5B:0C:B3:3C:C9:AA:F1:7C:CE:91:23:77:DD:0D:F8:54 :70:B9
现在,我的java代码:
keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(getClass().getResourceAsStream(KEYSTORE_FILE_PATH), "myPass".toCharArray());
keyStore.getCertificate("server").getPublicKey().getEncoded(); //here I get a null pointer exception - keystore.getCertificate("server") returns null.
Run Code Online (Sandbox Code Playgroud)
执行keyStore.aliases()返回EmptyEnumeration.
该应用程序使用maven,java ee 7,我已经将密钥库文件复制到我的应用程序的resources文件夹中.KEYSTORE_FILE_PATH的值为"/server.keystore".
谢谢.
我已经在eclipse中将项目导出到可运行的JAR中.我的代码中有一些地方我已经完成了以下操作.
String file = "src/Files/...";
loadFile(file); // purely for example
Run Code Online (Sandbox Code Playgroud)
既然项目是JAR的形式,那些目录似乎不存在,加载这些文件失败.我很确定我引用的文件是打包在JAR中的.导出到JAR时,目录是否以任何特定方式更改?关于如何使这项工作的任何其他想法?