2017-02-23 37 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环境变量。

相关问题