【问题标题】:Sublime can't find the javac commandSublime 找不到 javac 命令
【发布时间】:2015-11-05 00:40:33
【问题描述】:

我的 Java bin 被添加到路径中,但仍然找不到我认为的 javac。

这个东西在 Eclipse IDE 中运行良好。

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

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

以下是 sublime text 2 的错误。删除了一些英特尔路径,否则路径太长。

[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-build

{
    "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
}

由于这个原因,请帮忙,我没有使用 Sublime 文本并继续使用 Eclipse,但我想让我再试一次。

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

但现在错误更改为以下。

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]

【问题讨论】:

  • 我没明白,我该怎么做,如果你去我的路径输出,java bin文件夹在最后,如果你是这个意思。
  • 找到一个线程说路径中的引号导致了这个问题。你可以尝试修改sublime-build
  • @MichaelQuatrani 没有引号,它全是红色的。但即便如此,它也会显示相同的错误。
  • 标志是你在命令之后使用的东西。当使用命令行编译程序时,你会说javac myprogram.java,这会将项目编译成字节码。然后你说java myprogram.class,你就可以运行程序了。有些标志以javac -g 开头,表示生成调试信息。因此,您的程序出于某种原因告诉您无效标志。我不知道为什么,但是,我希望这会有所帮助。提示:切换到 Ubuntu !!!
  • @MichaelQuatrani 切换到 Ubuntu 没有帮助,这是由文件名中的空格引起的,javac 在任何平台上都会表现出相同的行为。

标签: java sublimetext2 sublimetext


【解决方案1】:

首先不要跳过如何构建和运行程序的细节。在 Eclipse 中,默认情况下我什至不知道 path/javac/java 等。

这里有一些关于这个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. 如果你在 sublime text 中运行程序,那么ctrl+b 只会编译程序而不运行它。
  6. 为此,您可以使用下面的自定义构建以及您的特定路径详细信息。

Myjava.sublime-build

{
    "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
}

这将同时编译和运行程序。

【讨论】:

    【解决方案2】:

    您的路径有 jre(Java 运行时环境)bin 目录,但没有 jdk(Java 开发工具包),这是 javac 通常所在的位置。您需要找到您的 JDK 所在的位置,并将该目录添加到您的路径中。

    【讨论】:

    • 非常感谢,我从来不知道jre和jdk之间有什么区别。我已经尝试了一个星期。现在我确信可以让它发挥作用。但是现在错误变为不同的东西,在帖子中包含相同的内容。
    • 文件路径中有空格吗?例如。如果您的文件位于“我的文档”中,则会发生此错误。尝试将文件路径用引号括起来。
    • 终于找到了,原来是用J而不是j
    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多