从命令行运行java [英] running java from command line

查看:151
本文介绍了从命令行运行java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

到目前为止,我一直主要使用eclipse。现在我正在尝试从终端运行java但是我遇到了包的问题。

I have been mostly using eclipse so far. Now I'm trying to run java from terminal but I have a problem with packages.

这是我的 Main.java file:

package main;

class Main {
    public static void main(String[] args) {
        System.out.println("it's working");
    }
}

我使用 javac进行编译Main.java 然后用 java Main 运行,它给了我:

I compile this using javac Main.java and then run with java Main which gives me:

java Main
Exception in thread "main" java.lang.NoClassDefFoundError: Main
Caused by: java.lang.ClassNotFoundException: Main
        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: Main. Program will exit.

当我删除包主一切正常。我缺少什么?

When I remove package Main everything works fine. What am I missing?

java -version 给出:

java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)


推荐答案

您需要在一个目录级别运行java命令并以完全限定的包名称给出它,例如: java main.Main

You need to run the java command up one directory level and give it in the fully qualified package name, eg: java main.Main

参见 Java Launcher如何查找用户类以了解其工作原理。

See How the Java Launcher Finds User Classes to learn how this works.

这篇关于从命令行运行java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆