当前位置: 首页 > 面试题库 >

如何使用javac编译Java包结构

闻修筠
2023-03-14
问题内容

我正在尝试(从命令行)编译一个Java包,该包会导入我自己的另一个包。我正在网上关注教程,但是当我尝试编译最终的Java文件(CallPackage.java)时似乎出现错误。

这是文件结构:

+ test_directory (contains CallPackage.java)
   -> importpackage
       -> subpackage (contains HelloWorld.java)

这是CallPackage.java:

/// CallPackage.java
import importpackage.subpackage.*;
class CallPackage{
  public static void main(String[] args){
  HelloWorld h2=new HelloWorld();
  h2.show();
  }
}

这是HelloWorld.java:

///HelloWorld.java

package importpackage.subpackage;

public class HelloWorld {
  public void show(){
  System.out.println("This is the function of the class HelloWorld!!");
  }
}

尝试的步骤

  1. 转到子包并使用编译HelloWorld.java $javac HelloWorld.java
  2. 转到test_directory并使用编译CallPackage.java $javac CallPackage.java

这给我最后一条命令一个错误:

CallPackage.java:1: package importpackage.subpackage does not exist
import importpackage.subpackage.*;
^
CallPackage.java:4: cannot find symbol
symbol  : class HelloWorld
location: class CallPackage
  HelloWorld h2=new HelloWorld();
  ^
CallPackage.java:4: cannot find symbol
symbol  : class HelloWorld
location: class CallPackage
  HelloWorld h2=new HelloWorld();
                    ^
3 errors

如何编译两个软件包?非常感谢您的帮助!


问题答案:

您确定importpackage / subpackage在您的类路径中吗?

-cp路径或-classpath路径

指定在何处可以找到用户类文件,以及(可选)注释处理器和源文件。该类路径将覆盖CLASSPATH环境变量中的用户类路径。如果未指定CLASSPATH,-cp或-
classpath,则用户类路径由当前目录组成。有关更多详细信息,请参见设置类路径。

如果未指定-sourcepath选项,则还将在用户类路径中搜索源文件。

如果未指定-processorpath选项,则还将在类路径中搜索注释处理器。

http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html



 类似资料:
  • 问题内容: 我的文件夹中有四个Java文件。它们都在同一包中。这是包裹声明 所有这些类都在同一包中。我想知道如何使用它们来编译它们(我是说我不知道​​如何编译正在使用的多个文件)。一旦完成,如何启动然后在CLI中使用命令?这是文件名。 问题答案: 从项目的根目录: 要运行,假设没有其他依赖项: (假设具有正常功能。) 该命令将编译软件包目录中的所有文件。由于它们都在同一个包/目录中,因此可以使用。

  • 问题内容: 我在文件MyClass.java文件中有一个名为MyClass的类(下面提到的代码) 我在上课 但是我正在尝试使用 要么 我遇到错误 但是,如果我省略了软件包名称,则可以运行该程序。我要去哪里错了? 问题答案: 确保您位于包文件夹(已编译的类文件所在的文件夹)的父目录中,并执行以下命令: 下面是一个示例文件结构: 在上面的示例结构中,您将必须从“ bin”目录中执行命令。 另外,将类定

  • 问题内容: 您好,我有3个Java文件 我设法使用生成了A和B的.class文件 但是当我对c.java执行相同操作时,出现错误错误:找不到符号b和c 关于如何解决此问题的任何建议? 所有的Java文件都在同一个文件夹中 问题答案: 尝试编译class时,必须具有类并且在类路径中。这使编译器可以验证它们是否存在,找出它们具有哪些方法等。 对包名称和类路径非常敏感。最简单的方法是像这样同时编译这三个

  • 当我试图编译一个带有注释的项目时,我遇到了以下错误 如何在java解析器中修复此错误?我使用elcipselink和eclipse作为IDE。

  • 我使用的是jaxb-api,V2.2.9如果有关系的话。Maven依赖项是 下面是正在发生的事情的更详细的输出... mojoSuccedeord.codehaus.mojo:sql-maven-plugin:1.5(create-test-db)mojoStarted org.apache.maven.plugin:maven-compiler-plugin:2.3.2(default-comp

  • 问题内容: 我正在尝试编译以下代码: 在Eclipse中,它可以正常工作,但是在两种方法上都发出警告-“ DuplicateMainExample类型中的重复方法main(String []) ” 使用(Java版本“ 1.7.0_09”)时出现编译错误: 如何在Eclipse中使用进行编译? 问题答案: 仅仅因为您已经用相同的签名两次声明了相同的方法…仅应声明一个用于类的主方法。 Eclipse