繁体   English   中英

使用Eclipse IDE可以完美地编译和运行Java程序,但是当我使用“ 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也不知道该类文件,所以第一个错误的解决方案是

  1. 首先使用javac编译AnotherClass.java,然后再编译Program.java

  2. 第二个问题是,当您在包中包含一个类并使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM