如何用java编译包?

如何用java编译包?,java,Java,我编写了一个简单的软件包程序: 我得到以下信息: Exception in thread "main" java.lang.NoClassDefFoundError: MyPack/AccountBalance Caused by: java.lang.ClassNotFoundException: MyPack.AccountBalance at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.se

我编写了一个简单的软件包程序:


我得到以下信息:

Exception in thread "main" java.lang.NoClassDefFoundError: MyPack/AccountBalance
Caused by: java.lang.ClassNotFoundException: MyPack.AccountBalance
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: MyPack.AccountBalance. Program will exit.
怎么了?请帮帮我。 我已经安装了openjdk,我还需要安装其他东西吗??
我正在使用Ubuntu 10.04,请帮助我创建名为
MyPack
的文件夹,并在其中移动.class文件,或者使用以下命令行编译java代码,并将.class文件移动到
MyPack
文件夹中

javac YourFileName.java -d .
并使用

java MyPack.AccountBalance
看看这个工具

从工具文档:默认情况下,编译器将每个类文件放在与 它的源文件。您可以使用指定一个单独的目标目录 -d(见下文选项)


和教程。

最好是从包外编译和运行类:

首先,使用javac编译:

$javac MyPack/AccountBalance.java
这将在MyPack文件夹中创建一个名为AccountBalance.class的新文件

然后您可以运行它:

$java MyPack.AccountBalance

顺便说一下:不鼓励包名以大写字母开头。

当您试图编译java类时,请使用“-d”选项(目标)指定.class文件的位置

javac -d "classes" AccountBalance.java
运行程序时,请确保类路径中包含相同的文件夹:

java -classpath "classes" MyPack.AccountBalance

如果您经常通过
javac
java
命令编译和运行,请使用

javac MyJavaClass.java && java MyJavaClass
这将编译类,然后运行刚刚编译的类


注:用
替换
&
如果使用Windows powershell。

您是否已在帐户余额中导入mypack.Balance?我由javac AccountBalance.java编译,但在那里没有错误,但当我尝试使用java mypack.AccountBalance运行时,我收到以下消息:@user1388626您需要创建mypack文件夹并在其中移动Balance.class和AccountBalance.class。或者使用-d开关,以便javac工具创建包文件夹folder@user1388626然后从这个文件夹出来(回到MyPack的父文件夹),运行>java MyPack.AccountBalancewith
java
命令,您不需要指定
.class
扩展名,但只有包含
main
methodWindows的类的完全限定类名也使用此语法。@Nahiyan Windows cmd使用此语法,而Windows powershell使用
以一个接一个地运行命令。再次更新我的答案。
java -classpath "classes" MyPack.AccountBalance
javac MyJavaClass.java && java MyJavaClass