Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > не компилит javac


Автор: BEST13 24.6.2012, 18:14
Решил заняться Java, но вот беда, не могу скомпилировать и запустить свое первое приложение.
Установил Java  с сайта Оракл, последняя версия для Windows x64 (у меня Windows 7).  
Все установил по такому пути: 
    D:\Programming\Java\jdk1.7.0_05
    D:\Programming\Java\jre7
    D:\Programming\Java\JavaFx
     

Если ввести команду Java, то получаем следующие:
Код

C:\Users\Vitaliy>java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available
    -server       to select the "server" VM
    -hotspot      is a synonym for the "server" VM  [deprecated]
                  The default VM is server.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -no-jre-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument

    -splash:<imagepath>
                  show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for m
ore details.


На команду java-version:
Код

C:\Users\Vitaliy>java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)


А вот на команду javac :
Код

C:\Users\Vitaliy>javac D:\SkyDrive\java_projects\HelloWorld.java
"javac" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.


Переменные среды окружения,  я создал: 
    JAVA_HOME = D:\Programming\Java\jdk1.7.0_05\
    CLASSPATH = .; D:\Programming\Java\jdk1.7.0_05; D:\Programming\Java\jdk1.7.0_05\lib;
    Path =  D:\Programming\Java\jdk1.7.0_05\bin; C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;...

Может глупо, но  во всех мануалах в нете переменная PATH пишется заглавными буквами, а у меня она только с большой.

Также попробовал скомпилировать таким образом:
Код

C:\Users\Vitaliy> D:\Programming\Java\jdk1.7.0_05\bin\javac.exe D:\SkyDrive\java
_projects\HelloWorld.java
 

Все прошло удачно class-файл создался, но на следующем шаге не удача:
Код

C:\Users\Vitaliy> D:\Programming\Java\jdk1.7.0_05\bin\java.exe D:\SkyDrive\java_
projects\HelloWorld
Error: Could not find or load main class D:\SkyDrive\java_projects\HelloWorld
  

Буду, благодарен за разъяснения и помощь.

Автор: danilych 24.6.2012, 19:39
Вот хорошая статья, чтобы понять http://www.skipy.ru/technics/likbez.html

Автор: BEST13 25.6.2012, 00:10
Цитата(danilych @  24.6.2012,  19:39 Найти цитируемый пост)
Вот хорошая статья, чтобы понять http://www.skipy.ru/technics/likbez.html 


Но при помощи неё не решается проблема с javac:
Код

d:\SkyDrive\java_projects> javac -classpath .\classes -d .\classes .\src\hellopackage\HelloWorld.java
"javac" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Автор: k0rvin 25.6.2012, 08:22
Цитата(BEST13 @ 24.6.2012,  18:14)
во всех мануалах в нете переменная PATH пишется заглавными буквами, а у меня она только с большой.

Это без разницы.

Автор: BEST13 25.6.2012, 22:38
Цитата(k0rvin @  25.6.2012,  08:22 Найти цитируемый пост)
Это без разницы. 

А в чем тогда, может быть дело?

Автор: k0rvin 26.6.2012, 10:42
Цитата(BEST13 @ 25.6.2012,  22:38)
А в чем тогда, может быть дело?

Никаких идей. Похоже, что в PATH опечатка, хотя, судя по твоему посту, все нормально. Запусти cmd.exe, выполни
Код

echo %Path%

затем
Код

dir D:\Programming\Java\jdk1.7.0_05\bin

Автор: BEST13 26.6.2012, 12:52
Цитата(k0rvin @ 26.6.2012,  10:42)
Цитата(BEST13 @ 25.6.2012,  22:38)
А в чем тогда, может быть дело?

Никаких идей. Похоже, что в PATH опечатка, хотя, судя по твоему посту, все нормально. Запусти cmd.exe, выполни
Код

echo %Path%

затем
Код

dir D:\Programming\Java\jdk1.7.0_05\bin

Вот что получил в результате выполнения:
Код

C:\Users\Vitaliy>echo %Path%
 D:\Programming\Java\jdk1.7.0_05\bin; C:\Program Files (x86)\NVI
PhysX\Common;C:\Program Files (x86)\CollabNet;C:\Program Files (
\RAD Studio\9.0\bin;C:\Users\Public\Documents\RAD Studio\9.0\Bpl
s (x86)\Embarcadero\RAD Studio\9.0\bin64;C:\Users\Public\Documen
0\Bpl\Win64;C:\Program Files (x86)\Borland\Delphi7\Bin;C:\Progra
rland\Delphi7\Projects\Bpl\;C:\Windows\system32;C:\Windows;C:\Wi
bem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\

C:\Users\Vitaliy> dir D:\Programming\Java\jdk1.7.0_05\bin
 Том в устройстве D не имеет метки.
 Серийный номер тома: B2F4-8645

 Содержимое папки D:\Programming\Java\jdk1.7.0_05\bin

24.06.2012  16:28    <DIR>          .
24.06.2012  16:28    <DIR>          ..
24.06.2012  16:28            14 776 appletviewer.exe
24.06.2012  16:28            14 760 apt.exe
24.06.2012  16:28            14 768 extcheck.exe
24.06.2012  16:28            14 760 idlj.exe
24.06.2012  16:28            14 760 jar.exe
24.06.2012  16:28            14 776 jarsigner.exe
24.06.2012  16:28            14 768 java-rmi.exe
24.06.2012  16:28           188 840 java.exe
24.06.2012  16:28            14 768 javac.exe
24.06.2012  16:28            14 768 javadoc.exe
24.06.2012  16:28            14 768 javah.exe
24.06.2012  16:28            14 768 javap.exe
24.06.2012  16:28           189 360 javaw.exe
24.06.2012  16:28           268 720 javaws.exe
24.06.2012  16:28            14 760 jcmd.exe
24.06.2012  16:28            14 768 jconsole.exe
24.06.2012  16:28            14 760 jdb.exe
24.06.2012  16:28            14 760 jhat.exe
24.06.2012  16:28            14 768 jinfo.exe
24.06.2012  16:28           155 048 jli.dll
24.06.2012  16:28            14 760 jmap.exe
24.06.2012  16:28            14 760 jps.exe
24.06.2012  16:28            14 776 jrunscript.exe
24.06.2012  16:28            14 776 jsadebugd.exe
24.06.2012  16:28            14 768 jstack.exe
24.06.2012  16:28            14 768 jstat.exe
24.06.2012  16:28            14 768 jstatd.exe
24.06.2012  16:28            46 520 jvisualvm.exe
24.06.2012  16:28            14 768 keytool.exe
24.06.2012  16:28            14 768 kinit.exe
24.06.2012  16:28            14 768 klist.exe
24.06.2012  16:28            14 760 ktab.exe
24.06.2012  16:28           827 728 msvcr100.dll
24.06.2012  16:28            14 776 native2ascii.exe
24.06.2012  16:28            14 760 orbd.exe
24.06.2012  16:28            14 768 pack200.exe
24.06.2012  16:28            14 776 policytool.exe
24.06.2012  16:28            14 760 rmic.exe
24.06.2012  16:28            14 760 rmid.exe
24.06.2012  16:28            14 776 rmiregistry.exe
24.06.2012  16:28            14 776 schemagen.exe
24.06.2012  16:28            14 776 serialver.exe
24.06.2012  16:28            14 776 servertool.exe
24.06.2012  16:28            14 776 tnameserv.exe
24.06.2012  16:28           179 640 unpack200.exe
24.06.2012  16:28            14 768 wsgen.exe
24.06.2012  16:28            14 768 wsimport.exe
24.06.2012  16:28            14 760 xjc.exe
              48 файлов      2 461 328 байт
               2 папок  453 176 250 368 байт свободно



Автор: BEST13 26.6.2012, 13:15
Вот сейчас удалось скомпилить  таким вариантом:
Код

d:\SkyDrive\java_projects> d:\Programming\Java\jdk1.7.0_05\bin\javac.exe -classpath .\classes -d .\classes .\src\hellopackage\HelloWorld.java


И запустить:

Код

d:\SkyDrive\java_projects>java -classpath .\classes hellopackage.HelloWorld
Welcome 1
First App
Vitliy Petrov


И вот как так??? javac находиться в той же папке, что и java. Но javac  работает только с полным путем.   
  

Автор: miroque 26.6.2012, 14:03
От себя могу добавить ссылку http://www.ibm.com/developerworks/ru/library/j-classpath-windows/

А вот почему java работает а javac нет, тут нужно скорее всего искать причину в настройке винды её PATH, JAVA_HOME (Обычно он C:\Programm Files\JavaJDK\bin) и так далее...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)