如何获取存在的系统变量值
System.getenv()
在Java?
编辑
我用过的null方法.
如果我给,它是印刷价值
MyComputer -> Properties -> Advanced -> Environment Variables -> System Variables
Run Code Online (Sandbox Code Playgroud)
System.getenv()如果我对我创建的系统变量尝试相同的话,它就会显示出来
System.out.println(System.getenv("JAVA_HOME"));
Run Code Online (Sandbox Code Playgroud) 看看下面的程序.
try {
for (String data : Files.readAllLines(Paths.get("D:/sample.txt"))){
String[] de = data.split(";");
System.out.println("Length = " + de.length);
}
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
Sample.txt的:
1;2;3;4 A;B;; a;b;c;
输出:
Length = 4 Length = 2 Length = 3
为什么第二和第三个输出给出2和3而不是4.在sample.txt文件中,第二行和第三行的条件应该\n在给第三个字段的分隔符后立即给出换行符(或输入).任何人都可以帮助我如何在不更改sample.txt文件条件和如何打印de[2](抛出 ArrayIndexOutOfBoundsException)值的情况下将长度设置为第2行和第3行4 ?
我有一个java程序,它以path作为参数.我想在进行其他验证之前检查给定路径是否存在.例如:如果我给出一个不存在的路径D:\ Log\Sample,它必须抛出filenotfound异常.我怎样才能做到这一点?
我需要创建一个java程序,它将创建线程来搜索特定文件夹(源文件夹)中的文件,并在源文件夹中找到该文件后立即选择该文件进行处理工作(将其转换为csv文件格式).我现在面临的问题是来源文件夹的文件是大尺寸(FTP工具用于将文件从服务器复制到源文件夹),线程在完全复制到源文件夹并抛出异常之前立即挑选该文件.如何在文件完全复制到源文件夹之前停止线程?只有在将文件完全复制到源文件夹后,才必须选择要处理的文件.
我创建了一个程序,用于搜索源文件夹中的文件.如果找到任何文件,它会处理该文件并将其移动到目标文件夹,然后在源文件夹中查找新文件.它必须继续检查文件的源文件夹.
我用一个线程来查找源文件夹中的文件.我面临的问题是,在文件处理期间抛出任何异常时,线程都会停止.即使抛出异常,我也希望线程能够运行.它必须将导致错误的文件移动到其他文件夹并在源文件夹中查找新文件.如何让线程继续运行?
例如:
public void run() {
try {
searchfile();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void searchfile(){
...
}
Run Code Online (Sandbox Code Playgroud)
更新:
在我的问题中我应该更清楚.实际上有4个源文件夹和4个目标文件夹.我必须在每个源和目标对中执行相同的操作.所以我在一个类中创建了4个线程,并在单独的类中执行操作.
class MainClass
{
public static void main(String[] args){
for(int i=0;i<4;i++){
SearchClass search = new SearchClass();
Thread thread = new Thread(search);
thread.start();
}
}
}
class SearchClass
{
public void run() {
try {
searchfile();
} catch(Exception e) {
e.printStackTrace();
}
}
public void searchfile(){ ... } }
Run Code Online (Sandbox Code Playgroud)
所有线程都不会停止运行,尽管它在中间发现任何异常.我怎样才能做到这一点?
嗨,我正在使用log4j api进行日志记录.当我使用以下代码附加到appender时,它显示"addAppender()未定义为类型Logger"错误
FileAppender myAppender = new FileAppender(new PatternLayout(),"output.log");
Logger.getLogger(ConfigFileReader.class.getName()).addAppender(myAppender);
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我该怎么做才能调试此错误?
你能说出怎么做的想法吗?
代码:
public void main(String[] args) {
try {
//Some Exception throws here
}
catch(SomeException se) {
se.printStackTrace();
}
finally {
try {
//SomeException1 throws here
}
catch(SomeException1 se1) {
se.printStackTrace();
//Control is getting stop in this block itself but i wanna print the below statement
}
// I need to print this statement whatever exception occurs
System.out.println("End Program");
}
}
Run Code Online (Sandbox Code Playgroud) 我已经创建了java程序,它将处理进入特定文件夹的不同文件.在我的程序中,我需要为每个传入的文件创建日志文件以记录该文件的异常.我已经使用了以下代码.我面临的问题是第一个文件,它创建日志文件和记录异常.当第二个文件文件到来时,它会创建单独的日志文件并记录第二个文件的异常,同时它会记录第二个文件的异常以及第一个文件的日志文件中的第一个文件异常.我不想将第二个文件的异常附加到第一个文件的日志文件中.怎么做?
private Appender myAppender;
private Logger logger = Logger.getLogger(ConfigFileReader.class.getName());
//filename is dynamic based on the incoming file
myAppender = new FileAppender(new AppXMLLayout(),filename+".log",true);
logger.addAppender(myAppender);
Run Code Online (Sandbox Code Playgroud)