本文目錄一覽:
java中怎麼調用掃描儀
1。先搞清楚要在哪種類型的程序中調用掃描儀
如果開發的程序是java application或者基於 swing的程序,可以算作是單機或者 c/s架構的程序,applet和java fx技術也可以這麼算,因為都是直接通過java程序去操控掃描儀設備。
如果是基於瀏覽器的應用,即b/s架構的程序,掃描圖像的工作是在客戶端完成的,這種情況下Java程序其實是接收和保存掃描儀讀取的圖像結果,並不需要直接的控制掃描儀工作,這一點上和c/s架構的程序有本質的區別。
2。架構與技術應用
2.1 c/s架構程序的掃描儀調用
c/s架構需要通過java代碼直接操控掃描儀設備,java語言本身被設計為跨o/s平台,對特定平台的硬體操控能力有限,因此需要藉助外部技術實現掃描儀控制調用,可以通過jni(java原生應用程序介面) 技術去實現掃描儀調用,具體的細節實現就是jni中定義掃描儀操作方法,如scan()等方法,然後使用javah生成c語言的.h頭文件,然後使用vc等編程語言去實現jni介面方法。
在windows平台和mac平台上面,操作掃描儀都可以通過twain協議
總之c/s架構的java程序調用掃描儀通過jni+twain編程既可完成。
2.2 b/s架構程序的掃描儀調用
b/s架構的掃描儀調用在前面已經提到過,java程序實現上做的事情是接收掃描結果圖像數據 ,例如在struts2的 action中或者jsp/servlet等等程序中接收掃描儀圖像掃描結果,真實的客戶端掃描儀調用應該藉助客戶端技術去實現。
在Linux中的Mozilla瀏覽器中如何調用掃描儀掃描圖像呢?這個著實是個難題,需要做Mozilla的插件才可以,但是在windows平台有ActiveX技術供程序員使用,因此瀏覽器是在windows平台中的話藉助Activex技術即可擴展瀏覽器能力。
區域網在線掃描 IP,MAC Java源代碼
1.得到區域網網段,可由自己機器的IP來確定 (也可以手動獲取主機IP-CMD-ipconfig /all)
2.根據IP類型,一次遍歷區域網內IP地址
JAVA類,編譯之後直接運行便可以得到區域網內所有IP,具體怎樣使用你自己編寫相應代碼調用便可
代碼如下::
package bean;
import java.io.*;
import java.util.*;
public class Ip{
static public HashMap ping; //ping 後的結果集
public HashMap getPing(){ //用來得到ping後的結果集
return ping;
}
//當前線程的數量, 防止過多線程摧毀電腦
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多30個線程
while(threadCount30)
Thread.sleep(50);
threadCount +=1;
PingIp p = new PingIp(ip);
p.start();
}
public void PingAll() throws Exception{
//首先得到本機的IP,得到網段
InetAddress host = InetAddress.getLocalHost();
String hostAddress = host.getHostAddress();
int k=0;
k=hostAddress.lastIndexOf(「.」);
String ss = hostAddress.substring(0,k+1);
for(int i=1;i =255;i++){ //對所有區域網Ip
String iip=ss+i;
Ping(iip);
}
//等著所有Ping結束
while(threadCount0)
Thread.sleep(50);
}
public static void main(String[] args) throws Exception{
Ip ip= new Ip();
ip.PingAll();
java.util.Set entries = ping.entrySet();
Iterator iter=entries.iterator();
String k;
while(iter.hasNext()){
Map.Entry entry=(Map.Entry)iter.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
if(value.equals(「true」))
System.out.println(key+「–」+value);
}
}
class PingIp extends Thread{
public String ip; // IP
public PingIp(String ip){
this.ip=ip;
}
public void run(){
try{
Process p= Runtime.getRuntime()。exec (「ping 」+ip+ 「 -w 300 -n 1」);
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
//讀取結果行
for (int i=1 ; i 7; i++)
input.readLine();
String line= input.readLine();
if (line.length() 17 || line.substring(8,17)。equals(「timed out」))
ping.put(ip,「false」);
else
ping.put(ip,「true」);
//線程結束
threadCount -= 1;
}catch (IOException e){}
}
}
}
JAVA中的掃描儀
Scanner是jdk1.5新增的一個類,使用該類可創建一個對象,Scanner scan=new Scanner(System.in);意思是聲明一個Scanner類的對象,並實例化,system.in即接收鍵盤輸入。
如何在Java中調用掃描儀的源代碼
下載一個jar包,放在lib目錄下面,然後再把這個jar加入到項目裡面就可以了,右鍵add as libary,就可以引用源代碼了
怎樣用java調用掃描儀
首先要了解介面、再看是否標準的硬體驅動、或廠商是否提供驅動。。。。。。。。。如果沒有JAVA的,就使用JNI調用
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/184503.html