我可以在Linux的Windows子系统(WSL)PATH中创建指向Windows可执行文件的符号链接吗?

乌切·奥佐梅娜(Uche Ozoemena)

我在Windows上安装了Android Studio和JDK 8,但我的WSL上没有JDK cli。当我键入java或时javac,找不到命令。我在这里遵循了建议,现在可以通过键入java.exe和来从WSL访问命令javac.exe,但是我不想指定.exe扩展名。我的想法是添加一个指向可执行文件的符号链接,而不必指定可执行文件(/mnt/c/...的路径,因为这已在WSL PATH中完成。那么我可以创建一个指向PATH中某个位置的符号链接吗?如果这没有意义,这就是我尝试的方法:

sudo ln -s -t java.exe java

我知道了"failed to access 'java.exe': No such file or directory"但这正是我想要实现的:在PATH中指向可执行文件的符号链接,而无需指定可执行文件的实际路径,因为PATH已经具有该链接。如果我疯了,这是愚蠢的/不可能的/不必要的,您可以说这是答案,我会接受的!:-D

WinEunuuchs2Unix

您需要在可执行文件前加上路径。或者,您可以修改LinuxPATH环境变量并附加Windows路径(以前缀/mnt/c/)。

来自:Windows子系统,用于Linux与Windows的互操作性

从WSL调用Windows二进制文件

Linux的Windows子系统可以直接从WSL命令行调用Windows二进制文件。以这种方式运行的应用程序具有以下属性:

  1. 保留工作目录作为WSL命令提示符,但以下情况除外。
  2. 具有与bash.exe进程相同的权限。
  3. 以活动的Windows用户身份运行。
  4. 就像直接从CMD提示符下执行一样,出现在Windows任务管理器中。

例子:

$ /mnt/c/Windows/System32/notepad.exe

在WSL中,这些可执行文件的处理方式类似于本机Linux可执行文件。这意味着将目录添加到Linux路径,并且命令之间的管道按预期工作。例子:

$ export PATH=$PATH:/mnt/c/Windows/System32
$ notepad.exe
$ ipconfig.exe | grep IPv4 | cut -d: -f2
$ ls -la | findstr.exe foo.txt
$ cmd.exe /c dir

Windows二进制文件必须包括文件扩展名,匹配文件大小写并且是可执行的。非可执行文件(包括批处理脚本和类似命令)dir可以与/mnt/c/Windows/System32/cmd.exe /Ccommand一起运行

例子:

$ /mnt/c/Windows/System32/cmd.exe /C dir
$ /mnt/c/Windows/System32/PING.EXE www.microsoft.com

参数未经修改就传递给Windows二进制文件。

即使在Linux中,符号链接也包含路径。以以下命令为例:

$ ls -la /bin | grep ^l
(...SNIP...)
lrwxrwxrwx  1 root root      20 Jun 27 09:49 systemd -> /lib/systemd

systemd与链接/lib/systemd/systemd因此,您的符号链接为:

sudo ln -s -t java.exe java

我想(因为我不是链接专家)需要看起来像这样:

sudo ln -s -t /mnt/c/Windows/Path/To/java.exe java

使用alias代替符号链接

~/.bashrc因此,我将在文件中创建一个别名,而不是符号链接

alias java='/mnt/c/WindowsPathTo/java.exe'

然后,无论何时键入java,mumbo-jumbo都会代表您键入。遵守传递的所有参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Windows指向可执行文件的符号链接的快捷方式

如何在带有Linux子系统的GCC上为Windows编译可执行文件?

本地npm安装不会创建指向“ bin”可执行文件的符号链接

在多台计算机的Windows系统PATH中添加单个python可执行文件?

我可以在Mac上生成可在Windows上使用的python可执行文件吗?

可执行符号链接到Linux中的非可执行文件的可能性?

我可以从 webview 执行可执行文件吗?

Windows符号链接到可执行文件-不能通过双击打开

我可以在Windows上的Ubuntu或Linux的Windows子系统(WSL)上使用Bash将文件拖放到.sh脚本吗?

如何在 LINUX 中创建自我可执行存档文件?在任何操作系统中创建 Makeself 自可执行文件的步骤是什么?

获取有关Linux系统上Windows可执行文件的信息

在带有SysvInit的操作系统上,“ reboot”和“ halt”符号链接到某些可执行文件吗?

从可执行文件创建Windows服务

如何从JAR创建Windows可执行文件

使用MINGW并与CPLEX库链接从Linux编译Windows可执行文件

Windows可执行文件已在我的Linux上执行

使用pyinstaller在Linux中创建python可执行文件,无法在Windows计算机上运行

生成for Windows中的IntelliJ可执行文件

在Windows可执行文件中嵌入JRE?

我们可以使用py2exe在Python中创建的可执行文件进行文件处理吗?

Windows上的kubectl diff返回错误:在PATH中找不到可执行文件

如何在Windows中创建OCaml独立可执行文件

在开始菜单中为所有可执行文件创建符号链接的实用程序?

如何在Linux Shell脚本中运行Windows可执行文件?

将Linux上的Python脚本打包到Windows可执行文件中

制作可执行文件的符号链接

符号链接找不到所需的可执行文件

windows可执行文件在wsl路径下找不到文件

我可以在 Windows 子系统 Linux(WSL) 上为 Windows 上的 Ubuntu 终端安装 nasm 并运行 .asm 代码吗?