[英]Error when trying to compile .java helloworld program using javac
[英]Using Eclipse IDE can compile and run the Java program perfectly but when I use 'javac' it is resulting to Error
我是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位置:软件包Test Program.java:58:错误:找不到符号AnotherClass ac = new AnotherClass(); ^符号:
class AnotherClass位置:类Program Program.java:58:错误:找不到符号AnotherClass ac = new AnotherClass(); ^符号:类AnotherClass位置:类程序3错误
另一个问题是Eclipse在/ bin中创建内置的.class文件,如果我在终端上执行,则出现以下错误:
错误:找不到或加载主类程序
我找不到问题所在,程序如何在Eclipse IDE中进行编译并显示输出,而当我使用“ javac”进行编译然后使用“ java”运行时,则会引发错误。
任何帮助表示赞赏。 谢谢。
您应该首先编译您的类AnotherClass.java和Program.java以创建二进制文件(.class文件),如下所示:
javac Program.java AnotherClass.java
然后,您应该转到包名称为“ test”的目录。 然后,应在调用包含主方法的类时运行以下命令,该命令还包括类路径:
java -classpath . test.Program
当您尝试使用javac编译Program.java时,期望使用的是ClassClass的类文件,就像您在此类中引用的那样,即使eclipse在运行代码时创建了该类文件,javac也不知道该类文件,所以第一个错误的解决方案是
首先使用javac编译AnotherClass.java,然后再编译Program.java
第二个问题是,当您在包中包含一个类并使用javac进行编译时,它不会创建包结构,要创建包结构,请使用以下命令
javac -d。 AnotherClass.java
javac -d。 程式库
java Test.Program
您可以替换为“。” 与任何目录,我给“。” 在同一目录中创建包结构。 这为您提供了所需的输出
要使用命令行进行编译,您应该指定除类文件名以外的一些参数,以便一次编译多个文件:
javac -sourcepath src -d bin src\Test\Program.java
它将与AnotherClass.java
src
中的Program.java
(即AnotherClass.java
一起找到并编译所有相关类,并将所有已编译的类放入bin
,就像eclipse所做的那样。
要执行bin
下的程序:
java -classpath bin Test.Program
它将在bin
找到已编译的类并执行它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.