【问题标题】:How to compile main class from command prompt that include other classes [closed]如何从命令提示符编译包含其他类的主类[关闭]
【发布时间】:2013-08-06 05:08:56
【问题描述】:

我正在尝试从命令提示符运行 java 项目。但是当我输入

javac BatchImport.java

然后我得到错误。这是这些错误的屏幕截图

这是日志

D:\LS360BatchImportIntegration\src\main\java\com\softech\ls360\integration>dir

08/05/2013  05:47 AM    <DIR>          .
08/05/2013  05:47 AM    <DIR>          ..
08/01/2013  05:03 AM            11,707 AbstractBatchImport.java
08/05/2013  04:06 AM             1,591 BatchImport.java
08/05/2013  05:47 AM    <DIR>          email
08/05/2013  05:47 AM    <DIR>          file
08/05/2013  05:47 AM    <DIR>          ftp
08/05/2013  05:47 AM    <DIR>          sftp
08/05/2013  05:47 AM    <DIR>          util
08/05/2013  05:47 AM    <DIR>          vintners
08/05/2013  05:47 AM    <DIR>          webservice
           2 File(s)         13,298 bytes
           9 Dir(s)  122,904,571,904 bytes free

D:\LS360BatchImportIntegration\src\main\java\com\softech\ls360\integration>javac BatchImport.java
BatchImport.java:12: package com.softech.ls360.integration.util does not exist
import com.softech.ls360.integration.util.IntegrationUtil;
                                     ^
BatchImport.java:13: package com.softech.ls360.integration.util does not exist
import com.softech.ls360.integration.util.VU360IntegrationProperties;
                                     ^
BatchImport.java:14: package com.softech.ls360.integration.vintners does not exist
import com.softech.ls360.integration.vintners.Vintners;
                                         ^
BatchImport.java:46: cannot find symbol
symbol  : class Vintners
location: class com.softech.ls360.integration.BatchImport
            Vintners vintners = new Vintners(customerName, randomUUIDString);
            ^
BatchImport.java:46: cannot find symbol
symbol  : class Vintners
location: class com.softech.ls360.integration.BatchImport
            Vintners vintners = new Vintners(customerName, randomUUIDString);
                                    ^
5 errors

D:\LS360BatchImportIntegration\src\main\java\com\softech\ls360\integration>

我的主要课程也包括其他课程。其他类也包括其他类。如何编译包含多个类的项目?

谢谢

【问题讨论】:

  • javac 用于编译,而不是运行。
  • 是的,在编译时我会出错。我该如何避免呢?
  • 那么基本上,让我们告诉你如何避免代码中的错误?
  • stackoverflow.com/questions/2433332/…。这可能是一个转贴,如果命令“javac yourPackage*.java”有帮助,请告诉我。
  • 错误不清晰。如果您在Windows命令提示符下运行,您可以使用鼠标右键单击并选择复制粘贴上面的日志。然后按Enter键将日志带到剪贴板。然后使用 ctrl+v 粘贴到记事本中。然后放在上面。你也可以粘贴 BatchImport.java 吗?

标签: java


【解决方案1】:

假设 LS360BatchImportIntegration 是您项目的 base_directorycdbase_directory。从那里使用以下命令:

javac -d classes src\main\java\com\softech\ls360\integration\BatchImport.java

这将编译您的类并将它们放在 base_directory\classes 文件夹中。 如果您的项目有外部依赖项,请在javac 命令中使用-cp 选项

【讨论】:

    【解决方案2】:

    错误日志:

    BatchImport.java:12: package com.softech.ls360.integration.util does not exist
    import com.softech.ls360.integration.util.IntegrationUtil;
    

    表示在构建路径上找不到类com.softech.ls360.integration.util.IntegrationUtil;。因此,您需要将 jars 添加到包含上述类的构建路径中。

    我建议您使用 IDE 来运行该类,并在其构建路径中包含所有类。此外,如果您想通过命令提示符完成它,this SO answer 应该可以帮助您。但我坚持你要使用 IDE。

    【讨论】:

    • IntegrationUtil 不是罐子。这是我项目中的另一个类。我的BatchImport 类在包com.softech.ls360.integration 中,而IntegrationUtis 在包com.softech.ls360.integration.util 中。我还有其他包。你可以在我提供的日志中看到file, ftp,..。我想我首先必须编译那些包含在主类中的类。我说的对吗?
    【解决方案3】:

    javac 假定当前目录是默认包的位置。您正在从源目录结构的深处运行它。

    cd 回到src/main/java 目录并使用要编译的文件的完整路径。

    【讨论】:

      猜你喜欢
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 2016-01-24
      相关资源
      最近更新 更多