2015-11-05 241 views
2

我的Java bin被添加到路径中,但仍无法找到我认为的javac。Sublime找不到javac命令

这个东西在eclipse IDE中正常工作。

public class testing { 
    public static void main(String[] args) { 

     System.out.println("hi"); 
    } 
} 

以下是来自崇高文本2的错误。删除了一些intel路径,否则路径太长。

[Error 2] The system cannot find the file specified 
[cmd: [u'javac', u'C:\\Users\.......\testing.Java']] 
[dir: C:\Users..... 
[path: C:\ProgramData\Oracle\Java\javapath;C:\Python27\;C:\Python27\Scripts;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Java\jre1.8.0_45\bin;] 
[Finished] 

如果我在Sublime text 3中运行它,那么错误如下。

'javac' is not recognized as an internal or external command, 
operable program or batch file. 
[Finished in 0.0s with exit code 1] 

我甚至尝试过自定义构建,但显示的错误是相同的,下面是自定义构建。

MyJava.sublime建造

{ 
    "cmd": ["javac", "$file_name", "&&", "java" ,"$file_base_name"], 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "path" : "C:\\Program Files\\Java\\jre1.8.0_45\\bin", 
    "selector": "source.java", 
    "shell":true 
} 

但请帮助由于这个我还没有被使用崇高文字和与Eclipse继续以为让我再试一次。

下面是我的Java文件夹。如所建议的,我将jdk添加到路径中。

enter image description here

但是现在错误的改变如下。

javac: invalid flag: C:\........GitHub\HackerRank\testing.Java 
Usage: javac <options> <source files> 
use -help for a list of possible options 
[Finished in 0.3s with exit code 2] 
+0

我没有得到,我该怎么做,如果你会去我的路径输出,java bin文件夹到底有没有,如果这就是你的意思。 – User

+0

找到一个说路径引号引起这个问题的线程。你可以尝试修改'sublime-build' –

+0

@MichaelQuatrani而不用引号,它会变成红色。但即使如此,它也显示了同样的错误。 – User

回答

1

您的路径具有jre(Java Runtime Environment)bin目录,但没有jdk(Java Development Kit),这是通常找到javac的地方。您需要找到您的JDK所在的位置,并将该目录添加到您的路径中。

+0

非常感谢,我从来不知道jre和jdk之间存在差异。我一直在尝试这一个星期。现在我确定可以做到这一点。但现在错误改变了不同的东西,包括在后相同。 – User

+0

你的文件路径中是否有空格?例如。如果您的文件位于“我的文档”中,则会发生此错误。尝试用引号包装文件路径。 –

+0

终于找到了它,这是由于使用'J'而不是'j' – User

1

首先,不要跳过如何构建和运行程序的细节。在日食它发生在默认情况下,我根本不知道路径/ javac的/爪哇等

下面是关于这What does "Could not find or load main class" mean?

  1. 使用j一些伟大的细节文件名不J。 (test.java)
  2. javac test.java是用来编译该程序导致test.class编译的程序。
  3. 然后使用java test运行程序不java test.class
  4. 看仔细您的bin路径应该是jdk,而不是jre
  5. 如果运行在崇高的文本程序然后ctrl+b只会编译程序,而不是运行它。
  6. 要做到这一点,您可以使用下面的自定义生成与您的具体路径的详细信息。

Myjava.sublime,建立

{ 
    "cmd": ["javac", "$file_name", "&&", "java" ,"$file_base_name"], 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "path" : "C:\\Program Files\\Java\\jdk1.7.0_79\\bin", 
    "selector": "source.java", 
    "shell":true 
} 

这将编译和运行在同一时间的节目。

+0

恭喜!!!感谢您发布这个答案。 –