如何通过 IDE(Netbeans、Eclipse)中的 optirun (Bumblebee) 运行使用图形驱动程序的构建?

2023-12-12

有谁知道如何通过在IDE中调用optirun(bumblebee)来使eclipse或netbeans使用optimus笔记本电脑中的显卡,以便只需使用IDE中的运行按钮即可在IDE中的显卡中运行程序。

以最简单的形式,我只希望 IDE 执行相当于optirun ./javaproject


我在 Eclipse 中执行此操作的方法是首先启动 Java 调试器jdwp并监听端口。然后启动 JVMoptirun java ...并使用 jdwp 连接到此端口。通过创建一个任务,可以在 Eclipse 中同时启动这两个任务发射组 in the 调试配置设置(运行 -> 调试配置)。详细地:

  1. 创建一个远程Java应用程序使用“标准(套接字侦听)”调试配置连接类型和一些任意端口,例如56789。这会附加 Java 调试器jdwp在端口 56789 上连接到接受此端口上的调试连接的虚拟机。
  2. 现在我们需要启动一个 JVMoptirun。这可以通过外部工具配置(运行 -> 外部工具 -> 外部工具配置)。创建一个新的Program外部工具配置窗口左侧的配置。你可以直接开始optirun java <additional arguments>填写必填字段。然而,我决定使用一个可由不同项目重用的 shell 脚本(如下所示,缺少一个部分以使其完全可重用。我很高兴获得更有经验的 Eclipse 用户的帮助...) 。因此,Location字段指向此 shell 脚本。该脚本本身接受三个参数:类路径对于项目,Java 可执行文件的名称和端口号。这些参数可以传递给脚本中的论据领域的Main选项卡,例如

    • ${project_classpath:${selected_resource_name}}
    • ExecName
    • 56789

    shell 脚本如下所示,假设 optirun 在您的 PATH 中:

    #!/bin/sh
    CLASS_PATH=${1}
    JAVA_EXECUTABLE=${2}
    PORT=${3}
    # TODO: fix this java library path: pass it as an argument as well. Is there an Eclipse variable which stores this?
    JAVA_LIBRARY_PATH=/usr/local/share/OpenCV/java
    #------------------------------------------------------------------------------
    optirun ${JAVA_BIN} -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:${PORT} -Djava.library.path=${JAVA_LIBRARY_PATH} -Dfile.encoding=UTF-8 -classpath ${CLASS_PATH} ${JAVA_EXECUTABLE}
    #------------------------------------------------------------------------------
    
  3. 最后,将这两部分放在一起发射组 in the 调试配置窗口(运行 -> 调试配置)。创建一个新的启动组并通过单击添加之前生成的两个调试配置Add in the Launches选项卡并选择适当的配置。 请注意,由于步骤 2 中的类路径变量(即${project_classpath:${selected_resource_name}}),需要在中选择合适的包包浏览器在单击运行调试配置按钮之前(确保选择了启动组)。

这个解决方案非常适合我:我可以在 Eclipse 中调试 Java 代码,该代码调用涉及 CUDA 优化的本机代码,而 Bumblebee 仅在必要时激活独立显卡。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 IDE(Netbeans、Eclipse)中的 optirun (Bumblebee) 运行使用图形驱动程序的构建? 的相关文章

随机推荐