Выполнение Java-программы в cmd без использования заданного пути или системных переменных - PullRequest
0 голосов
/ 01 октября 2011

Я пытаюсь выполнить простую Java-программу («HelloWorld») в командной строке без использования параметра set path или установки системной переменной. Предположим, что java-программа находится в D: \ My_Programs , а исполняемые файлы java находятся в C: \ Program Files \ Java \ jdk1.6.0_24 \ bin . Вот что я сделал для компиляции: C: \ Program Files \ Java \ jdk1.6.0_24 \ bin> javac D: \ My_Programs \ HelloWorld.java Он создает файл .class, но та же стратегия выполнения создает исключение: C: \ Program Files \ Java \ jdk1.6.0_24 \ bin> java D: \ My_Programs \ HelloWorld

Exception in thread "main" java.lang.NoClassDefFoundError: D:\My_Programs\HelloW
orld
Caused by: java.lang.ClassNotFoundException: D:\My_Programs\HelloWorld
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: D:\My_Programs\HelloWorld.  Program will exit.

Может кто-нибудь подсказать, как выполнить этот файл . Заранее благодарим за помощь.

код:

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

Ответы [ 5 ]

4 голосов
/ 01 октября 2011

Пожалуйста, попробуйте это:

C:\Program Files\Java\jdk1.6.0_24\bin>java -cp D:\My_Programs HelloWorld

или даже это:

C:\anywhere> C:\Program Files\Java\jdk1.6.0_24\bin\java -cp D:\My_Programs HelloWorld

-cp сообщает исполняемому файлу java, где искать класс HelloWorld,Предоставление файлового аргумента D:\My_Programms\HelloWorld, где Java предполагает чистое имя пакета + имя класса, не будет работать.

2 голосов
/ 01 октября 2011

Поскольку вы были в каталоге Java, а не в каталоге вашей программы, когда вы запустили javac, файл класса, вероятно, также там.Как правило, это плохо - вы хотите, чтобы javac и java были на вашем пути, чтобы вы могли выполнять их, находясь в каталоге вашей программы.И тогда вы можете выполнить программу, используя java HelloWorld

0 голосов
/ 19 февраля 2015

Вы также можете попробовать изменить каталог в cmd на cd D: \ My_Programs и затем выполнить java HelloWorld . он выполнит файл. Единственным предварительным условием является наличие файла класса в этом месте.

0 голосов
/ 01 октября 2011
java -cp D:\My_Programs HelloWorld

Поскольку иерархия каталогов из иерархии классов должна быть рассмотрена.

0 голосов
/ 01 октября 2011

Вы можете попробовать этот способ java -cp "D: \ My_Programs" HelloWorld , предварительным условием является то, что HelloWorld.java, который вы скомпилировали, является основным классом.

...