Java,从文件导入 Class
Java, Import Class From File
我正在编写一个 java 程序并想制作一个 class 可以调用它来快速登录到 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
我不确定是什么原因导致的,我到处都找过这个问题,但找不到解决办法。有谁知道导致此问题的原因以及如何解决?
这是您尝试执行的更正代码:
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
class 的框架代码,它使用 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");
}
}
请注意,您不需要单独的 class 来登录,而是可以直接从 class 您需要记录消息的地方登录。
Dbg
是一个 class,而不是一个方法,因为它是一个助手 class,所以它不会有一个 main()
方法它自己的。相反,它应该有类似 log
的方法来进行日志记录并由另一个 class.
调用
我怀疑您没有正确编译代码。您需要在包含 LaunchProgram.java
和目录 helping
:
的目录中执行此操作
javac helping/Dbg.java
javac LaunchProgram.java
实际上你根本不需要第一行。第二行将编译两个 classes。这两个命令都会将相应的 .class 文件放入正确的目录中。然后给运行吧:
java LaunchProgram
基本上,您应该始终位于包结构头部的目录中。
我正在编写一个 java 程序并想制作一个 class 可以调用它来快速登录到 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
我不确定是什么原因导致的,我到处都找过这个问题,但找不到解决办法。有谁知道导致此问题的原因以及如何解决?
这是您尝试执行的更正代码:
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
class 的框架代码,它使用 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");
}
}
请注意,您不需要单独的 class 来登录,而是可以直接从 class 您需要记录消息的地方登录。
Dbg
是一个 class,而不是一个方法,因为它是一个助手 class,所以它不会有一个main()
方法它自己的。相反,它应该有类似log
的方法来进行日志记录并由另一个 class. 调用
我怀疑您没有正确编译代码。您需要在包含
的目录中执行此操作LaunchProgram.java
和目录helping
:javac helping/Dbg.java javac LaunchProgram.java
实际上你根本不需要第一行。第二行将编译两个 classes。这两个命令都会将相应的 .class 文件放入正确的目录中。然后给运行吧:
java LaunchProgram
基本上,您应该始终位于包结构头部的目录中。