2017-02-23 59 views
0

我是一名中級Java程序員,但我只有使用IDE(如NetBeans)編寫和運行我的程序的經驗。我最近開始在文本編輯器中編寫我的程序,通過Windows 10的命令提示符運行我的程序。在命令提示符下運行的java程序中使用package關鍵字

我成功地使用命令提示符創建了HelloWorld程序,但是由於我如何運行它而感到困擾。

原來我代碼爲:

package helloworld; 

public class HelloWorld{ 
    public static void main(String[] args){ 
     System.out.println("Hello, World!"); 
} 

我救了這個在目錄C一個.java文件:\項目\ MyProjects下\ HelloWorld的。

然後我鍵入的命令提示符運行以下命令:

cd C:\projects\myprojects\helloworld 
set path=%path%;C:\Program Files\Java\jkd1.8.0_121\bin 
javac HelloWorld.java 
java -cp . helloworld.HelloWorld 

這就造成了錯誤:

錯誤:無法找到或加載主類的HelloWorld

但是,一旦我重新編譯我的代碼省略第一行

package.helloworld; 

該p程序按預期運行。

爲什麼命令提示符在第一行出現時無法找到我的類。我試圖將目錄更改爲C:\ projects \ myprojects,但也失敗了。我怎樣才能成功編寫一個程序

package helloworld; 

行包括?

+2

該包是類完全限定名稱的一部分。編譯後,'cd ..'和'java -cp。 helloworld.HelloWorld' –

回答

1

由於Elliott answered評論,這些包是類完全限定名稱的一部分。您可以使用

System.out.println(this.getClass().getCanonicalName()); 

打印出當前的類名,包括包測試。

要回答你的問題,但是你必須做兩種:
然後java -cp . helloworld.HelloWorld

2- java helloworld\HelloWorld

可能要參考thisjava -cp詳細的例子。

+0

缺少cd ..命令。不完全確定那是什麼,但似乎是錯誤的根源。 Thx –

+0

這將[向上移動你的目錄](http://www.wikihow.com/Change-Directories-in-Command-Prompt)。 –

0

要從命令提示符運行包中的任何類,您需要將當前目錄作爲項目的基礎目錄。

然後,您可以使用它們的引用(即完全限定類名稱(FQCN))引用該項目中的所有類。

例如。
如果我有A類:

位置 - C:\的Myproj \組織\的Myproj \ ExampleClass.java
FQCN - org.myproj.ExampleClass。

我會做以下幾點:

cd C:\myproj 
javac org\myproj\ExampleClass.java 
java -cp . org.myproj.ExampleClass 

這是假設在Java bin文件夾已被添加到Path環境變量。

相關問題