【问题标题】:Is it possible to import class file with default package?是否可以使用默认包导入类文件?
【发布时间】:2014-02-07 14:49:00
【问题描述】:

我创建了一个项目和 Hello.java 文件,没有包名

public class Hello {
   public String sayHello(){
      return "Say Hello";
   }
}

我将此项目导出到 hello.jar

现在我创建了另一个项目和 Main.java 来调用 sayHello() 方法。我在类路径中添加了 hello.jar,但下面的代码向我显示了一个错误“Hello 无法解析为类型”

 public class Main {
   public static void main(String[] args){
     Hello h=new Hello(); // Error
  }
}

【问题讨论】:

标签: java


【解决方案1】:

这是不可能的,因为您的Hello.java 类需要位于存储在您的 JAR 文件中的包中,以便您可以引用它。你的 JAR 的结构至少应该是

hello.jar/packageName/Hello.java

在创建它之后,它将被导入

import packageName;

您将能够使用上述包中的类。

【讨论】:

    【解决方案2】:

    没有。这是不可能的。
    尝试将包名赋予Hello java 文件,然后再次创建 jar,然后在 Main 类文件中写入 import 语句

    package com;
    public class Hello {
       public String sayHello(){
          return "Say Hello";
       }
    }
    

    并在Main 类中添加以下行

    import com.Hello;
    public class Main {
       public static void main(String[] args){
         Hello h=new Hello(); 
      }
    }
    

    【讨论】:

    • 虽然这是解决问题的方法,但并不能直接说明问题的原因。
    • @ Luiggi Mendoza - 我希望我的回答为 OP 增加了一些价值。你能解释一下原因吗?这对我来说是增值的。
    • 是的,请查看我对 OP 问题的评论中发布的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    相关资源
    最近更新 更多