java - 将类导入 Java 文件

标签 java class logging import

我目前正在学习用 Java 进行开发,并且有兴趣创建其他用户可以导入到他们的程序中并使用的 Java 类。是的,我知道我的示例类既简单又愚蠢,但我想学习这个概念并开始制作更复杂的类,以便人们可以导入到他们的项目中。

我创建了一个简单的“Logger”类,当调用该类时,它会将文本记录到控制台和文本文件中以提高可读性。您可以使用以下命令调用此类...

Logger Logger = new Logger();
Logger.create();
Logger.log("This text will be logged to the console and log.log");

请参阅下面的 Logger 类。

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Logger {
        FileWriter fw;
        BufferedWriter br;
        File file = new File("log.log");
        boolean fileExists = file.exists();
        public void log(String message) {
            try {
                fw = new FileWriter(file, true);
                br = new BufferedWriter(fw);
                Calendar cal = Calendar.getInstance();

                int hour = cal.get(Calendar.HOUR_OF_DAY);
                if(hour > 12)
                    hour = hour - 12;

                int minute = cal.get(Calendar.MINUTE);
                int second = cal.get(Calendar.SECOND);
                int millis = cal.get(Calendar.MILLISECOND);

                int ampm = cal.get(Calendar.AM_PM); 
                String ampmString;
                if(ampm == 1)
                    ampmString = "PM";
                else
                    ampmString = "AM";

                String now = String.format("%02d:%02d:%02d.%03d %s", hour, minute, second, millis, ampmString);

                System.out.println(now + " - " + message);
                br.write(now + " - " + message);

                br.newLine();
                br.close();
            } catch (Exception err) {
                System.out.println("Error");
            }

        }
        public void create() {
            try {
                fw = new FileWriter(file, true);
                br = new BufferedWriter(fw);
                SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-YYYY");
                String dateString = sdf.format(new Date());
                if(file.length() != 0)
                    br.newLine();
                System.out.println("Log: " + file.getAbsolutePath());
                br.write("--------------------" + dateString + "--------------------");
                br.newLine();
                br.close();
            } catch (Exception err) {
                System.out.println("Error");
            }
        }
    }

我遇到的问题是为了使用这个类,我必须将它添加到我创建并想要使用它的每个项目中。有没有一种方法可以添加像 mydomain.Logger.*; 这样的导入并能够访问此类及其包含的方法?

我的问题,允许任何人以最简单的方式导入/使用我的 Logger 类的最佳方法是什么?我需要采取哪些步骤才能让他们做到这一点?

最佳答案

将类编译成 JAR 文件,然后将该 jar 添加到每个项目的类路径中。这是重用类的标准 Java 方法。

关于java - 将类导入 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17864140/

相关文章:

java - 将 log4j.properties 转换为 log4j.xml

java - 如何检索ArrayList(Java)的索引?

java - Eclipse是否需要构建项目来执行 "Java Search"

java - 添加用于客户端身份验证的 trustStore

c++ - C++ 中包含子类的基本抽象类数组

c# - 在 Python 中获取 C# 日志

python - python 需要具有基于时间和基于大小的文件轮换的 Concurrent_log_handler

java - SearchableByName 接口(interface)不断返回 null

ios - 从字符串数组中获取 NSClassFromString - Swift

c++ - 类函数和成员变量踩内存