我在我的程序中使用bluecove
库。
在通过eclipse运行程序时,一切顺利。我现在正在尝试部署我的程序,并在this发布后使用fat-jar发布。
当我运行jar文件(由fat-jar创建)时,无法找到该库,并且由于此行BlueCove libraries not available
而导致异常local = LocalDevice.getLocalDevice();
。
在胖子窗口中,我还尝试将bluecove-2.1.0.jar
添加到Class-Path
位置,并添加路径\src\JoJoServer\bluecove-2.1.0.jar
。
我还尝试将bluecove的jar文件放在不同的文件夹中,例如src或外部文件夹。
虽然我不知道它不推荐,但我尝试了One-Jar选项,但它没有帮助。
要运行jar(胖罐创建的jar),我只需双击该文件即可 我错过了什么?
这是整个代码:
import java.io.IOException;
import javax.bluetooth.BluetoothStateException;
import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.LocalDevice;
import javax.bluetooth.UUID;
import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;
import javax.microedition.io.StreamConnectionNotifier;
@Override
public void run() {
// retrieve the local Bluetooth device object
LocalDevice local = null;
StreamConnectionNotifier notifier;
StreamConnection connection = null;
// setup the server to listen for connection
try {
local = LocalDevice.getLocalDevice();
local.setDiscoverable(DiscoveryAgent.GIAC);
UUID uuid = new UUID("0000110100001000800000805F9B34FB", false);
System.out.println(uuid.toString());
String url = "btspp://localhost:" + uuid.toString() + ";name=RemoteBluetooth";
notifier = (StreamConnectionNotifier)Connector.open(url);
} catch (BluetoothStateException e) {
System.out.println("Bluetooth is not turned on.");
e.printStackTrace();
return;
}
// ...
}
答案 0 :(得分:0)
我不知道你的问题是什么,但我已经尝试了这个过程,一切正常,所以只是我做了什么的摘要。也许你会通过追随它来弄明白......
我不明白发布的代码怎么可能是整个,我看不到类定义。 :) 所以我将它修改为main方法,它既可以从Eclipse运行,也可以运行FatJar生成的JAR。
BTTest类的修改代码:
package test;
import java.io.IOException;
import javax.bluetooth.BluetoothStateException;
import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.LocalDevice;
import javax.bluetooth.UUID;
import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;
import javax.microedition.io.StreamConnectionNotifier;
public class BTTest {
public static void main(String[] args) throws Exception{
// retrieve the local Bluetooth device object
LocalDevice local = null;
StreamConnectionNotifier notifier;
StreamConnection connection = null;
// setup the server to listen for connection
try {
local = LocalDevice.getLocalDevice();
local.setDiscoverable(DiscoveryAgent.GIAC);
UUID uuid = new UUID("0000110100001000800000805F9B34FB", false);
System.out.println(uuid.toString());
String url = "btspp://localhost:" + uuid.toString()
+ ";name=RemoteBluetooth";
notifier = (StreamConnectionNotifier) Connector.open(url);
} catch (BluetoothStateException e) {
System.out.println("Bluetooth is not turned on.");
e.printStackTrace();
return;
}
// ...
}
}
要运行或生成它,我只需将bluecove库放在构建路径中并使用一种简单的方法创建胖jar: http://oi60.tinypic.com/vg1jpt.jpg
从命令行启动生成的jar:
D:\testProjects\bttest>java -jar bttest_fat.jar
BlueCove version 2.1.0 on winsock
0000110100001000800000805f9b34fb
BlueCove stack shutdown completed
您可以在流程中发布差异吗?