TLDR; 如何使用java上的默认应用程序打开像"magnet:?xt = blablablabl"这样的磁力链接
我正在开发一个搜索网站以获取磁力链接并打开它的应用程序.目前我打开firefox传递磁铁url作为参数,但它留下了一个打开的选项卡,如果没有安装firefox,这个方法似乎不适用于chrome(我没有用ie测试它).我想要的是打开处理磁铁协议的默认应用程序.我知道在Windows中我可以从注册表中获取它,在ubuntu上我可以调用xdg-open,但我正在寻找一个更优雅的解决方案在java或已经这样做的库.有这样的事吗?
我正在尝试打印字符串向量的所有排列。此代码按预期工作:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
vector<string> v;
v.push_back("+1");
v.push_back("x4");
do {
cout << v[0] << " " << v[1] << endl;
} while (next_permutation(v.begin(), v.end()));
}
Run Code Online (Sandbox Code Playgroud)
输出:
+1 x4
x4 +1
Run Code Online (Sandbox Code Playgroud)
但是当我将“x4”更改为“*4”时,next_pemutation 循环只迭代一次。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
vector<string> v;
v.push_back("+1");
v.push_back("*4");
do {
cout << v[0] << " " << v[1] << endl;
} while (next_permutation(v.begin(), v.end()));
}
Run Code Online (Sandbox Code Playgroud)
输出:
+1 *4
Run Code Online (Sandbox Code Playgroud)
其他字符如 # 似乎具有相同的效果。为什么会发生?