我正在编写一个java程序,并希望创建一个可以调用的类来快速登录到cmd(我还在我的测试阶段,计算出来的东西)。我有一个文件和一个包含另一个文件的文件夹。
LaunchProgram.java
helping
Dbg.class
Dbg.java
LaunchProgram.class
(相关内容)的摘要内容:
import helping.Dbg;
public class LaunchProgram{
public static void main(String[] args){
Dbg("Testing");
}
}
Dbg.class
的内容:
package helping;
public class Dbg{
public static void main(String message){
System.out.println(message);
}
}
当我在cmd中执行javac Dbg.java
时,它运行时没有任何错误,生成Dbg.class
。
当我在cmd中执行javac LaunchProgram.java
时,出现以下错误:
LaunchProgram.java:5: error: cannot find symbol
Dbg("Testing");
^
symbol: method Dbg(String)
location: class LaunchProgram
我不确定是什么导致了这种情况,而且我已经到处寻找这个但却无法找到解决方案。有谁知道导致这个问题的原因以及如何解决它?
答案 0 :(得分:2)
Dbg
是一个类,而不是一个方法,因为它是一个帮助类,它不会有自己的main()
方法。相反,它应该像log
方法那样执行日志记录并由另一个类调用。
我怀疑你没有正确编译代码。您需要在包含LaunchProgram.java
和目录helping
的目录中执行此操作:
javac helping/Dbg.java
javac LaunchProgram.java
实际上你根本不需要第一行。第二行将编译这两个类。这两个命令都会将相应的.class文件放入正确的目录中。然后运行它:
java LaunchProgram
基本上,您应始终位于包结构头部的目录中。
答案 1 :(得分:1)
以下是您尝试执行操作的更正代码:
public class LaunchProgram {
public static void main(String[] args){
Dbg.log("Testing");
}
}
public class Dbg {
public static void log(String message){
System.out.println(message);
}
}
但Apache log4j是一种更好的登录应用程序的方法。以下是LaunchProgram
类的框架代码,它使用log4j记录消息:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class LaunchProgram {
static final Logger logger = LogManager.getLogger(LaunchProgram.class.getName());
public static void main(String[] args){
logger.info("Testing");
}
}
请注意,您不需要单独的类来记录,而是可以直接从记录消息所需的类中进行记录。