朋友们好,当我使用javac构建系统时,我在为java编程设置高级文本时遇到了一些问题,然后我在终端中遇到了这样的错误
“bash: javac: command not found
[Finished in 0.1s with exit code 127]
[shell_cmd: javac “/home/vinays/Documents/HelloWorld.java”]
[dir: /home/vinays/Documents]
[path: /app/utils/bin:/app/sublime_merge/bin:/app/bin:/usr/bin]”
然后我给自己做了一个新的构建系统,像这样:
}
shell_cmd”: “java $file_name”,
“working_dir”: “${project_path:${folder}}”,
“path”: “/usr/bin/java”
}
它又一次出错并显示:
/usr/bin/env: ‘bash’: No such file or directory
[Finished in 0.0s with exit code 127]
[shell_cmd: java HelloWorld.java]
[dir: /home/vinays/Documents]
[path: /app/utils/bin:/app/sublime_merge/bin:/app/bin:/usr/bin]
请调查一下,帮我解决这个问题。 enter code here
2条答案
按热度按时间rbl8hiat1#
你这里出了很多问题,所以让我们分阶段来考虑。
这表明
sublime-build
您试图使用的文件(可能是sublime附带的文件)试图调用的文件javac
,但在路上的任何地方都找不到。您的回答中还包括以下内容:
这表明
java
在道路上确实是可用的;这是用于执行java程序的命令。既然你有
java
但似乎没有javac
,我猜您安装的是jre(java运行时环境),而不是jdk(java开发工具包)。第一个仅用于运行java应用程序,而第二个实际上包含编译java代码所需的工具和附加文件。因此,最好的办法是验证您是否安装了jdk(可能是通过执行
which javac
看看上面写了什么)。除此之外,您还提供了
sublime-build
文件:这是错误的,有几个原因。首先,它使用
java
而不是javac
,所以即使它真的起作用了java
,它会失败,因为java
用于执行编译的class
文件,而不是用于编译代码。其次,
path
在一个sublime-build
文件并不像你想象的那样。具体来说,它告诉崇高完全删除您的文件的内容PATH
然后用您提供的内容替换它。这个
PATH
用于指定要在其中以交互方式运行程序的目录列表;在这里,您已经将其设置为java
程序本身(即不是文件夹)。有了这样的改变,任何东西都不能再运行了,因为
PATH
完全无效。因此你的错误是:这是操作系统告诉你,崇高试图运行
bash
(默认shell),但找不到它。找不到因为path
被你的身材破坏了path:
列出的是在生成开始之前为调试诊断收集的,因此它表示path
是在sublime-build
文件)。同样值得注意的是
javac Something.java
只是编译java代码,然后停止;这几乎肯定不是你想做的。您可能也想实际执行代码。所以,在你确定你两个都有之后
java
以及javac
,你应该能够让自己站起来,用sublime-build
文件如下:这将编译单个java文件,然后,如果它起作用,执行它。注意,因为你的另一个版本破坏了
PATH
,您需要重新启动sublime,才能进行任何生成。这也不能帮助您处理任何比单个文件更复杂的java程序。java作为一种语言,不适合于特别编译和运行文件,因为
class
文件需要位于适当的包特定位置。在某个时候,您需要升级到使用sublime的一些支持java的外部构建工具,例如
Ant
或者类似的。mxg2im7a2#
是的,长官,我已经验证了我的系统命令,我得到了以下结果:
~$哪个javac/usr/bin/javac
我在《崇高的文本》中的更多经历也是这样的: