2017-09-02 102 views
0

我使用Windows CMD,出于某种原因,我收到了与我的.java文件有关的错误消息。例如,我打字:为什么命令行没有找到我的.java文件?

javac FirstProgram.java 

然而,出现此错误消息:

javac: file not found: FirstProgram.java 
Usage: javac <options> <source files> 
use -help for a list of possible options 

javac -version类型的,我目前使用javac 1.8.0_144。有人在另一个堆栈溢出问题建议更改系统变量。我使用JAVA_HOME作为变量名称,并将路径复制到我的JDK文件夹,但到目前为止,我没有太多运气。我仍然收到相同的错误消息。

+4

我猜你'从错误的fo中运行命令lder连续。 – Carcigenicate

+4

最可靠的解释是没有FirstProgram.java文件。 'dir'的输出是什么? –

+0

向我们展示目录树 –

回答

1

如果没有找到文件,则应该尝试使用绝对路径。

javac /some/directory/path/to/the/file/FirstProgram.java 

:在命令行中,大部分炮弹就无论如何不会让你完成路径,如果文件不存在那里。另一种方法是,如果您从探索者/发现者复制路径,则应保证其存在。

编辑:将使用在评论中指出的绝对路径斜杠在Windows中,如:

javac \some\directory\path\to\the\file\FirstProgram.java 
+0

是的,但他在Windows上...... – Robert

+0

当我这样做时,我收到了有关错误标志的错误消息。 – Bijou

+0

@Robert绝对路径在Windows中仍然可用。那里有什么问题? – nullpointer

0

浏览到包含程序则是特定的文件夹[Shift + L_Click]单击打开cmd,然后再次运行以确保它正在该文件夹中运行。

-1

这是我的一个简化的DOSJavaIDE环境简单的测试应用程序如果Eclipse太麻烦了。我可以将应用程序编译并运行到特定的JVM版本。研究此脚本以查看每个命令中的文件夹结构和路径。

文件夹和文件

c:\projects\test1\classes\ 
c:\projects\test1\lib\ 
c:\projects\test1\lib\somelib1.jar 
c:\projects\test1\lib\somelib2.jar 
c:\projects\test1\src\ 
c:\projects\test1\src\test\GameLoop2.java 
c:\projects\test1\src\META-INF\MANIFEST.MF 
c:\projects\test1\javaenv.bat 

javaenv.bat

@REM Standalone JavaDosEnvironment 
@set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_112 

@"%JAVA_HOME%\bin\java" -version 

@set cmd=%1 
@if "%cmd%"=="" (
    @echo Please specify command to run ^(1..n or empty to exit^) 
    @echo 1=Compile, 2=Jar, 12=CompileJar 
    @echo 3=Run-test1 GameLoop2 with vsync 
    @SET /p cmd="1..n: " 
) 

@IF /I "%cmd%"=="1"   set cmd=compile 
@IF /I "%cmd%"=="compile"  call :COMPILE 
@IF /I "%cmd%"=="2"   set cmd=jar 
@IF /I "%cmd%"=="jar"   call :JAR 
@IF /I "%cmd%"=="12"   set cmd=compilejar 
@IF /I "%cmd%"=="compilejar" (
    call :COMPILE 
    call :JAR 
) 

@IF /I "%cmd%"=="3"   set cmd=run-test1 
@IF /I "%cmd%"=="run-test1" call :RUN-test1 
@goto :END 


:COMPILE 
xcopy /Y .\src\META-INF\*.* .\classes\META-INF\ 
set cp=./lib/somelib1.jar;./lib/somelib2.jar 
"%JAVA_HOME%\bin\javac" -classpath "%cp%" -sourcepath ./src -d ./classes ./src/test/*.java 
@goto :eof 

:JAR 
xcopy /Y .\src\META-INF\*.* .\classes\META-INF\ 
SET MF=./classes/META-INF/MANIFEST.MF 
"%JAVA_HOME%\bin\jar" cvfm ./lib/test.jar %MF% -C ./classes . 
@goto :eof 

:RUN-test1 
"%JAVA_HOME%\bin\java" -cp "./lib/*" test.GameLoop2 "fullscreen=false" fps=60 vsync=true 
@goto :eof 

:END 
@pause 

MANIFEST.MF

Implementation-Title: testapp 
Implementation-Version: 1.0.0 (2017-07-21) 
Implementation-Vendor: myname 
Implementation-URL: http://my.homepage.com/ 

运行此命令行中的脚本(如javaenv.bat compile,javaenv.bat jar,javaenv.bat run-test1),或者在没有参数的情况下运行以提示选择列表。

看到一个自定义的清单,你可以写任何你想要的,并包含在./lib/test.jar文件中。编译目标在类路径中有很少的第三方依赖库。

1

使用dir或DIR/p命令看到你的命令提示符目录内容

C:\路径\为\程序目录\目录

看看FirstProgram.java是否列出?如果没有,那么你是在一个错误的目录。

现在你有两个选择

  1. 您可以使用cd命令或
1

这里有几个问题,您可以使用绝对路径为您FirstProgram.java文件更改为正确的目录...包括为什么

问题1:

“...我甚至不允许将我的FirstProgram.java保存在Documents中的Java 文件夹中。” < =?!?

问题2:

“......我得到了一个假标志错误消息” < =这可能是在路径名

强烈建议下一个空格‘’ :

下载Eclipse并尝试编译并从Eclipse运行您的程序。换句话说,使用IDE而不是命令行。

你可以在这里下载Eclipse:

有一个很好的 “初学者教程” 在这里: