WSL配置java开发环境--失败

18 篇文章 0 订阅

一 安装

1.1 WSL

  1. 首先安装WSL,参考windows上的linux子系统(WSL)
  2. 更换源。打开清华大学开源软件镜像站,找到对应自己版本的源,拷贝内容。
  3. 将原有源备份,创建新源
    sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    sudo vim /etc/apt/sources.list  #将内容张贴进去
    

1.2 Java

  1. 下载OpenJDK,这里下载Ubuntu中默认的java版本:
    $ sudo apt install default-jdk
    
  2. java环境变量。此时java已存在/usr/bin/java目录,因此不用设置PATHCLASSPATH默认当前目录,也不用设置,因此只设置JAVA_HOME,参考:零碎知识1.11。编辑~/.profile文件,添加一句:
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    

1.3 Tomcat

  1. 从官网上下载tomcat,然后在linux拷贝过来,解压到某个地方(我选择~/Software/目录)。
  2. 修改~/.profile,添加环境变量,tomcat需要确定自己的位置。但也不是必须的,idea配置tomcat不需要。
    export CATALINA_HOME=/home/luo/Software/apache-tomcat-9.0.16
    
  3. 为tomcat添加符号链接到~/bin目录下,该目录默认位于$PATH中,然后就可以在命令行中启动tomcat了
    $ ln -s /path/to/tomcat/bin/catalina.sh ~/bin/tomcat
    # 注意,第一个路径是指向catalina的绝对路径,这里随手写的
    

1.4 Maven

  1. 同样的配置,官方下载、拷贝、解压,这里不用设置环境变量PATH了,直接创建符号链接:
    ln -s /path/to/Maven/bin/mvn ~/bin/mvn
    # 注意项同上
    
  2. 为了加速maven,配置阿里镜像,在打开maven下conf/settings.xml,在mirrors节点下添加
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    

1.5 Intellij Idea

  1. 同样在官网上下载、拷贝、解压,但是这里创建脚本文件,主要为了打开idea后不会因为会话结束而结束(假设有x server)。创建脚本~/bin/idea
    /usr/bin/nohup /home/luo/Software/idea-IU-183.5912.21/bin/idea.sh >/dev/null &
    

1.6 x server

idea属于x client,需要x server的存在才能显示窗体,又因为wsl与windows共享网络的,因此可以在windows运行x server。这里使用vcxsrv,它的性能比xming好。下载后直接安装。

点击桌面上的XLauch
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
上面选择保存,保存到一个地方后(这里是有目的的,后面介绍),点击完成。然后在linux配置环境变量DISPLAY,x client需要该变量找到x server。修改~/.profile,添加:

export DISPLAY=localhost:0.0

然后运行idea,你会发现idea能够正常运行了。现在我们需要在windows中为vcxsrv设置自启,按win+R,输入shell:startup,将之前保存的文件放入进来,以后每次开机都会打开vcxsrv了。参考win10设置程序开机自启

1.7 sublime

有时候vim方便,有使用GUI编辑器更方便,因此这里安装sublime。这里参考教程:How to Install Sublime Text 3 on Ubuntu 18.04,然后发现它没有符号链接存在于PATH下,因此我们自己创建一个:

$ ln -s /opt/sublime_text/sublime_text ~/bin/sublime

sublime会自动运行为守护进程,会话结束不会被关闭,因此不用写额外的脚本。

1.8 添加输入法

使用sublime过程中,会发现输入法不能使用,因为这是在linux进程中,不能使用windows的输入法,而我们使用的Bash.exe能够在vim中输入中文,是因为它是一个windows进程。

  1. 首先导入windows的所有字体
    # 将windows的字体放入ubuntu里
    sudo mkdir /usr/share/fonts/windows
    sudo cp -r /mnt/c/Windows/Fonts/*.ttf /usr/share/fonts/windows/
    fc-cache
    
  2. 安装输入法,这里选择谷歌拼音
    # 安装输入法及所需的包,这里选择的是谷歌输入法
    sudo apt-get --assume-yes install fcitx fcitx-googlepinyin dbus-x11
    
  3. ~/.profile中添加环境变量
    # 设置中文 & 输入法
    export LC_ALL="zh_CN.UTF-8"
    export XMODIFIERS=@im=fcitx
    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    
  4. 设置zh_CN.UTF-8,然后重启shell
    sudo locale-gen zh_CN.UTF-8
    
  5. 运行fcitx服务,并配置它。fcitx是输入法使用的框架,或接口吧。
    fcitx # 如果报错,没关系,进程能够运行就行了
    fcitx-configtool # 确保此时Xserver为开启
    

在这里插入图片描述在这里插入图片描述
现在可以在sublime中使用中文啦,但是输入法依赖于fcitx服务,一般wsl不会存在服务,因此为了每次开机都能使用输入法,我们在bash shell的脚本中默认开启服务。在~/.profile中添加如下脚本代码:

# 模拟开启dbus和fcitx服务
if [ $(ps -ax | grep dbus-daemon | wc -l) -eq 1 ]; then
          eval `fcitx > /dev/null 2>&1`
fi

这里是我从其他地方抄来修改了下的,代码可能看着比较奇怪。

如果仍不能输入中文,可以尝试手动运行fcitx服务:

$ fcitx

最后,要提醒一点,当windows自启时,最好在x server启动后才打开,因为fcitx对x server有依赖,否则你需要手动键入fcitx

1.9 界面模糊

可能会发现,字体、界面很模糊,这和分辨率有关。原理不太清楚,直接上过程。这里我们要修改vcxsrv真正执行的程序,找到vcxsrv的安装目录,右键vcxsrv,点击属性:
在这里插入图片描述在这里插入图片描述
现在linux图形程序可以很清晰的显示了,如果觉得小,我们可以设置环境变量GDK_SCALE,控制它的缩放比例。这里不细说了。

二 配置idea

不写了,宣布

配置失败!!!1

因为我碰到了很多问题:

  • 第一,不能监听80端口问题,github有相关issue,它们通过卸载winegame、关闭虚拟机适配器、vpn解决,我一一尝试,没用!!!系统也更新到了最新,wsl也是一样。归根结底,还是wsl不够完善。
  • 第二,下载firefox不能访问网络,可以ping百度
  • 第三,转而让idea使用windows的chrome,又发现idea的On frame deactivation不可用,只有将焦点切换到wsl的sublime才能激活idea的这个功能。。。
  • 第三,对我的键盘不太兼容,,,无论英文键盘布局还是中文键盘布局,,,,,

因此,我还是玩windows吧。。。。


2019.6.13更新
经测试,目前问题一已被解决,可以监听1024以下的端口了

其他资料

https://zhuanlan.zhihu.com/p/36784160

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在 Windows Subsystem for Linux (WSL) 中配置 C 开发环境需要以下步骤: 1. 在 Windows 中安装 WSL。 2. 在 Microsoft Store 中安装一个 Linux 发行版。 3. 在 WSL 终端中使用 apt-get 或 yum 等工具安装 GCC。 4. 安装一个文本编辑器或 IDE 来编写代码,比如 gedit、nano 或 VSCode。 5. 使用 gcc 命令编译代码,使用 ./a.out 运行程序。 注意,在第三步,也可以使用apt-get install build-essential 或者 yum install gcc-c++ 安装其他编译器(include C++,Fortran..) 例如: $sudo apt-get install build-essential 如果你想在Windows 上运行 WSL 编译的二进制文件,请参考关于使用 ELF 的文章,同时需要在 windows 安装 Linux 子系统适配器。 ### 回答2: WSL (Windows Subsystem for Linux) 是一种在Windows操作系统上运行Linux子系统的工具,因此我们可以使用WSL配置C开发环境。 在开始之前,您需要确保已经安装了WSL并设置了一个Linux发行版,如Ubuntu。 1. 打开WSL终端或通过开始菜单中的WSL发行版进入Linux子系统。 2. 安装C开发所需的基本工具,包括gcc编译器和GNU工具集。使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install build-essential ``` 3. 接下来,您可以选择安装一个集成开发环境(IDE)或者使用命令行进行开发。以下是两个常用的IDE: - Visual Studio Code:您可以在Windows中安装Visual Studio Code,并使用Remote - WSL扩展与WSL集成。通过安装C/C++扩展,您可以在VS Code中编写、调试和构建C代码。 - Eclipse CDT:Eclipse CDT是一个专门为C和C++开发而设计的集成开发环境。您可以通过在WSL中安装Eclipse和相应的插件来进行C开发。 4. 如果您选择在命令行中进行开发,您可以使用nano、vi或emacs等文本编辑器来编写C代码。使用以下命令安装您喜欢的编辑器: ``` sudo apt-get install nano ``` 5. 编写您的C代码,并将其保存为以`.c`为扩展名的文件。 6. 使用gcc编译器来编译您的C代码。在终端中运行以下命令: ``` gcc your_code.c -o output ``` 这将生成一个可执行文件`output`。 7. 最后,您可以在WSL中运行生成的可执行文件来测试您的C程序: ``` ./output ``` 您应该能够在终端中看到您的程序的输出。 通过按照以上步骤,您就可以在WSL中成功配置C开发环境并开始开发C程序了。无论是使用IDE还是命令行工具,WSL为C开发提供了一个方便、强大且易于使用的平台。 ### 回答3: 要配置WSL的C开发环境,需要进行以下步骤: 1. 安装WSL:在Windows 10中打开PowerShell或命令提示符,运行以下命令来安装WSLwsl --install 2. 下载WSL发行版:在Microsoft Store中搜索并安装一个WSL发行版,例如Ubuntu或Debian。 3. 启动WSL:打开已安装的WSL发行版。 4. 更新软件源:运行以下命令更新软件源和软件包列表: sudo apt update 5. 安装C编译器:运行以下命令来安装C编译器(例如gcc): sudo apt install build-essential 6. 编写C代码:使用一个文本编辑器(例如nano或vim)创建一个新的C源文件,并编写你的C代码。 7. 编译C代码:运行以下命令来编译你的C代码: gcc -o output_file input_file.c 这将会生成一个可执行文件(output_file)。 8. 运行C程序:运行以下命令来执行你的C程序: ./output_file 这将会运行你的C程序并显示输出结果。 通过以上步骤,你就可以在WSL配置并使用C开发环境进行C代码的编写和执行了。记得及时更新软件源和安装所需的C编译器,以保持开发环境的最新和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值