我是JAVA的新手。我编写了简单的程序(在Linux -VIM编辑器中),编译并执行它,一切都很好。
现在,我已将该文件移至另一个目录并尝试编译(javac Myfile.java),但它会抛出错误消息javac-not found
。
有人能解释一下这是什么问题吗?
答案 0 :(得分:1)
正确设置类路径和路径并检查其是否正常工作。
USAGE:
SET CLASSPATH=%<CLASSPATH>%
SET PATH=%<PATH_WHERE_JDKS_BIN_LOCATED>%
路径环境变量必须指向jdk安装中的bin目录...
USAGE:
Variable : JAVA_HOME
Value : C:\Program Files\Java\jdk1.5.0\bin;.
Variable: PATH
Value : C:\Program Files\Java\jdk1.5.0\lib
System Variables :
Variable : PATH (This will be there already)
Value : %JAVA_HOME%\bin;
由于文件不在当前目录中,请在提示符下面执行以下操作
$cd home/kiddosr/Kiddo/Java_Programs/ and press enter
home/kiddosr/Kiddo/Java_Programs at this point of time type javac Example1.java
答案 1 :(得分:1)
您的原始问题并不完全清楚(因为它不包含完整的错误消息)。
来自你的评论:
$ javac Example1.java
javac: file not found: Example1.java
Usage: javac <options> <source files> use -help for a list of possible options
所以,javac没有找到你的文件示例java。
通常,您不必设置CLASSPATH(在bash中使用export CLASSPATH=
),javac将搜索当前目录中的源。您的Example1.java
是否在当前目录中? (键入ls
并查看输出。)
如果没有,你应该把这个文件的路径作为参数提供给javac ...但它确实更好,所以只需用cd
移动到正确的目录。
如果您正在使用软件包,请将您的shell放在软件包目录层次结构顶部的目录中,然后从那里使用相对文件名调用编译器。
编辑,因为我看到接下来的问题:
-d
参数(或当前目录,如果没有给出)给出的输出目录树中,按其包结构,所以请确保稍后在那里搜索它们(在调用程序时)。如果编译器需要其他类来编译命令行中指示的文件,它将搜索类路径中的类文件(由-classpath
或-cp
选项提供,或由{源路径中的{1}}环境变量或当前目录)和源文件(由CLASSPATH
选项或类路径指定(如果未设置源路径))。如果对于所需的两者都存在且源文件较新,则也会重新编译它。 (它们也根据包结构进行搜索。)
因此,在这种情况下,您应确保传递-sourcepath
选项,以便编译器可以找到您的其他源文件。