簡體   English   中英

如何訪問其.java文件中沒有package語句的類?

[英]How to access a class whose .java file has no package statement?

我只是對某事感到好奇。 說我有以下環境:

文件夾結構-

projects \ prj1 \ src \ pkgs \ main (contains Main.java)
                             \ test (contains TestClass.java)

Main.java-

package pkgs.main;

import pkgs.test.TestClass;

class Main {
    public static void main(String[] args) {
        TestClass tc;
    }
}

基於Java Shell的編譯命令-

javac -d ..\cls -sourcepath ..\src ..\src\pkgs\main\Main.java
java -classpath ..\cls pkgs.main.Main

然后,如果我制作一個名為Default.java的.java代碼文件,則該文件沒有package語句-

public class Default {}

並將此文件放置在src文件夾中,諸如Main.java之類的文件如何訪問此Default類? 我嘗試使用以下導入語句,但均不起作用,導致編譯錯誤:

Main.java-

package pkgs.main;

// import Default;    (causes many compilation error messages)
// import .Default;   (causes "identifier expected" compilation error)

我也將Default.java文件從src文件夾移到了包含Main.java的文件夾中,但這也不起作用。 我欣賞整個想法似乎是一個糟糕的設計,但我這樣做只是為了更多地了解package和import語句以及項目文件夾結構如何工作。 謝謝。

為了避免兩個間接步驟,可接受的答案的實質是根據規范

從未命名的包中導入類型是編譯時錯誤。

這意味着,如果您不在未命名(默認)包中,則除非准備轉向反射否則您將無法訪問未命名/默認包中的類。

但是,如果您使用的是未命名/默認包,則無需導入任何內容,只需別忘了設置類路徑,例如javac -cp "." ABC.java javac -cp "." ABC.java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM