小编Ank*_*hag的帖子

如何在log4j中为配置文件中的文件appender提供环境变量路径

我有一个log4j.xml配置文件.和RollingFileAppender我需要它来存储日志提供文件路径.问题是我的代码将作为可运行的jar部署在Unix机器上.所以,如果我传递这样的参数:

value=logs/messages.log"
Run Code Online (Sandbox Code Playgroud)

它在我的HOME目录中创建名为logs的文件夹,并将所有消息写入该目录中的文件.

我有一个环境变量设置为某个值.我想使用该变量的路径并在该路径下写入消息.我怎样才能实现它?

我试过用这个:

value="${MY_HOME}/logs/message.log"
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有谁能建议解决这个问题?

java log4j environment-variables

42
推荐指数
4
解决办法
9万
查看次数

插入Sorted LinkedList Java

我在下面有这个代码,我将一个新的整数插入到一个有序的LinkedList中,但我不认为这是"正确"的做事方式,因为我知道有一个单独的链表,指针指向下一个值和双链表指向下一个和上一个值的指针.我试图使用Nodes来实现以下情况,但Java正在导入这个导入org.w3c.dom.Node(文档对象模型),所以卡住了.

插入案例

  1. 插入空数组
  2. 如果要插入的值少于所有值,请在开头插入.
  3. 如果要插入的值大于所有值,请插入最后一个.
  4. 如果值小于/大于LL中的某些值,则介于两者之间.

    import java.util.*;
    
    public class MainLinkedList {
    public static void main(String[] args) {
    LinkedList<Integer> llist = new LinkedList<Integer>();
    
    llist.add(10);
    llist.add(30);
    llist.add(50);
    llist.add(60);
    llist.add(90);
    llist.add(1000);
    System.out.println("Old LinkedList " + llist);
    
    //WHat if you want to insert 70 in a sorted LinkedList
    LinkedList<Integer> newllist = insertSortedLL(llist, 70);
    System.out.println("New LinkedList " + newllist);
    }
    
    public static LinkedList<Integer> insertSortedLL(LinkedList<Integer> llist, int value){
    
        llist.add(value);
        Collections.sort(llist);
        return llist;
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

    }

java collections linked-list data-structures

8
推荐指数
2
解决办法
5万
查看次数

如何将一个just对象实例传递给java中的一个线程,这样即使实例值得到更新也不应该影响使用它的线程

我正在开发一个我不断收到消息的应用程序.我将这些消息存储在内存数据结构中(比如List).我想将这些消息写入文件,但只有在列表大小达到某个阈值后才说100条消息(对消息执行批处理).一种方法是我可以在收到每条消息后简单地检查列表大小,如果达到阈值,则调用函数将消息写入文件.但这种方法的问题是:

  1. 调用函数可能需要无限期地等待,直到所有消息都写入文件
  2. 传入的消息可能在此过程中丢失,或者可能需要等待存储在列表中.

其他方法可能是生成一个新线程,它将独立地将消息写入文件.但是当我将列表(包含消息)传递给线程以执行写操作时,它会被新消息更新,这些消息会不断进入.因此,新到达的消息也会被写入到不期望的文件中.

这不应该发生,因为我打算在下一批中写入新消息.

有人可以建议我这个要求的解决方案,或上述方法的任何改进,可以解决我的问题.

java multithreading

4
推荐指数
1
解决办法
164
查看次数

如何在java中生成增量标识符

我的要求是不断接收需要写入文件的消息。每次收到新消息时,都需要将其写入单独的文件中。我想要的是生成一个唯一标识符以用作文件名。我也想保留消息的顺序。我的意思是,作为文件名生成的标识符应该始终是增量的。

我使用UUID.randomUUID()来生成文件名,但这种方法的问题是 UUID 只保证标识符的随机性,而不是增量。结果我丢失了文件的顺序(我希望首先生成的文件应该首先出现在列表中)。

已知方法

  1. 可以使用 System.currentTimeMillis() 但我可以在同一时间戳接收多条消息。

2.另一种方法可能是实现静态长值并在要创建文件时增加它并将长值用作文件名。但我不确定这种方法。此外,它似乎不是我的问题的正确解决方案。我认为可能有比这更好的解决方案。

如果有人可以建议我更好地解决这个问题,将不胜感激。

java

1
推荐指数
1
解决办法
2895
查看次数

如何在java中调用Method作为后台进程

在我的应用程序中,当用户登录时,我有这个逻辑,它将使用用户拥有的所有符号调用下面的方法.

public void sendSymbol(String commaDelimitedSymbols) {
        try {
            // further logic
        } catch (Throwable t) {

        }
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,由于这个发送符号的任务可以慢慢完成但必须完成,所以无论如何我可以将其作为后台任务吗?

这可能吗 ??

请分享您的观点.

java parallel-processing multithreading

1
推荐指数
1
解决办法
9449
查看次数

Java Enum 未使用的字段警告

我在这里做错了什么?

public enum Type {
    INFO("INFO"),
    WARN("WARN"),
    ERROR("ERROR"),
    FATAL("FATAL");

    private String value;

    private Type(String aValue) {
        value = aValue;
    }
};  
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我收到有关值未使用的警告...

我所能想到的就是使用@SupressWarnings,但我是枚举的新手,所以我只是在这里检查是否我做错了什么......有什么想法吗?

java eclipse enums warnings

1
推荐指数
1
解决办法
1452
查看次数

如何停止"ArrayIndexOutOfBounds"异常

嗨,大家好,我在夏天学习java,这是最后的任务,我被困住了.该程序应该输入我输入的13个数字,对它们进行排序,然后找到我在原始数组中输入的最大数字的索引号.我试图看看我的选择方法是否有效,但每当我尝试输入数字时,我都会得到一个超出范围的错误.这有点令人沮丧,我一直试图找到并回答几个小时.任何帮助将不胜感激.谢谢!

import java.util.Scanner;
public class fmax
{
  public static void main(String[] args)
  {
    int indmax;
    int[] fmax = new int[13];
    fillmax(fmax);
    //System.out.println(fmax);
    indmax = maxfmax(fmax);
    //indmin = minfmax();
    System.out.println(indmax);
  }

  public static void fillmax(int[] farray)
  {
    Scanner sc = new Scanner(System.in);
    int i = 0;
    for(i = 0; i < farray.length; i++)
    {
      farray[i] = sc.nextInt();
    }
   }

    public static int maxfmax(int[] farray)
    {
      int[] copy = farray;
      int j, x=0, i;
      boolean flag = true;
      int temp;

      while(flag)
      { …
Run Code Online (Sandbox Code Playgroud)

java arrays indexoutofboundsexception

-1
推荐指数
1
解决办法
2903
查看次数