我是Eclipse和java编程的新手,所以请保持温和,非常感谢任何帮助。
我最近用java和Eclipse IDE编写了一个程序。
我做了以下课程:
package Test;
import java.util.*;
import Test.AnotherClass;
public class Program{
public static void main(String[] args){
AnotherClass ac = new AnotherClass();
ac.callingAMethod();
}
}
这个类位于一个名为Program.java的文件中,我创建了另一个名为AnotherClass.java的文件,它的实现如下:
package Test;
import java.util.*;
public class AnotherClass{
public void callingAMethod(){
System.out.println("Hello, World!");
}
}
现在,如果我使用Eclipse,那么程序运行完美,甚至将输出显示为" Hello,World!"在Eclipse的控制台中。但是,如果我使用Terminal和javac进行编译,则会给出以下错误:
Program.java:3:错误:找不到符号导入Test.AnotherClass; ^符号:类AnotherClass位置:包测试Program.java:58:错误:不能 找到符号AnotherClass ac = new AnotherClass(); ^符号:
class AnotherClass location:class Program Program.java:58:错误: 找不到符号AnotherClass ac = new AnotherClass(); ^符号:类AnotherClass位置:类程序3错误
另一个问题是Eclipse在/ bin中创建了内置的.class文件,如果我在终端上执行,那么它会给我以下错误:
错误:无法找到或加载主类程序
我无法找到问题,为什么程序可以在Eclipse IDE中编译并显示输出,而当我使用' javac'编译然后使用' java'运行它会引发错误。
感谢任何帮助。谢谢。
答案 0 :(得分:0)
首先应该编译类AnotherClass.java和Program.java来创建二进制文件(.class文件),如下所示:
javac Program.java AnotherClass.java
然后你应该去包名" test"存在。然后你应该在调用包含main方法的类时运行下面的命令,该命令也包括类路径:
java -classpath . test.Program
答案 1 :(得分:0)
当你尝试使用javac编译Program.java时,它正在期待AnotherClass的类文件,就像你在这个类中引用它一样,即使eclipse在你运行代码时创建了这个类文件javac是不知道这个类文件,所以第一个错误的解决方案是
首先使用javac编译AnotherClass.java然后编译Program.java
第二个问题是当你在包中包含一个类并使用javac编译它不会创建包结构时,创建包结构给出下面的命令
javac -d。 AnotherClass.java
javac -d。 Program.java
java Test.Program
你可以替换"。"在任何目录中,我都给了#34;。"在同一目录中创建包结构。这为您提供了所需的输出
答案 2 :(得分:0)
要使用命令行进行编译,您应该指定除类名之外的一些参数,以便一次编译多个文件:
javac -sourcepath src -d bin src\Test\Program.java
它将找到并编译所有相关类以及位于源路径Program.java
中的AnotherClass.java
,即src
,并将所有已编译的类放在bin
中就像日食一样。
执行位于bin
下的程序:
java -classpath bin Test.Program
它将在bin
中找到已编译的类并执行它。