有谁知道如何通过在IDE中调用optirun(bumblebee)来使eclipse或netbeans使用optimus笔记本电脑中的显卡,以便只需使用IDE中的运行按钮即可在IDE中的显卡中运行程序。
以最简单的形式,我只希望 IDE 执行相当于optirun ./javaproject
我在 Eclipse 中执行此操作的方法是首先启动 Java 调试器jdwp并监听端口。然后启动 JVMoptirun java ...
并使用 jdwp 连接到此端口。通过创建一个任务,可以在 Eclipse 中同时启动这两个任务发射组 in the 调试配置设置(运行 -> 调试配置)。详细地:
- 创建一个远程Java应用程序使用“标准(套接字侦听)”调试配置连接类型和一些任意端口,例如56789。这会附加 Java 调试器jdwp在端口 56789 上连接到接受此端口上的调试连接的虚拟机。
-
现在我们需要启动一个 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}
#------------------------------------------------------------------------------
- 最后,将这两部分放在一起发射组 in the 调试配置窗口(运行 -> 调试配置)。创建一个新的启动组并通过单击添加之前生成的两个调试配置Add in the Launches选项卡并选择适当的配置。
请注意,由于步骤 2 中的类路径变量(即
${project_classpath:${selected_resource_name}}
),需要在中选择合适的包包浏览器在单击运行调试配置按钮之前(确保选择了启动组)。
这个解决方案非常适合我:我可以在 Eclipse 中调试 Java 代码,该代码调用涉及 CUDA 优化的本机代码,而 Bumblebee 仅在必要时激活独立显卡。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)