GVKun编程网logo

如何检查Java中是否存在Internet连接?(java检查网络是否连接)

26

如果您对如何检查Java中是否存在Internet连接?感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如何检查Java中是否存在Internet连接?的详细内容,我们还将为

如果您对如何检查Java中是否存在Internet连接?感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如何检查Java中是否存在Internet连接?的详细内容,我们还将为您解答java检查网络是否连接的相关问题,并且为您提供关于inno-setup – 安装前检查Java是否存在、java – EHCache如何检查缓存中是否存在某些内容?、java – 如何检查json密钥是否存在?、java-Inno设置:如何检查JRE是否存在,如果不存在,则提示下载?的有价值信息。

本文目录一览:

如何检查Java中是否存在Internet连接?(java检查网络是否连接)

如何检查Java中是否存在Internet连接?(java检查网络是否连接)

你如何检查是否可以通过Java连接到Internet?一种方法是:

final URL url = new URL("http://www.google.com");final URLConnection conn = url.openConnection();... if we got here, we should have net ...

但是是否有更合适的方法来执行该任务,特别是如果你需要经常进行连续检查并且很有可能断开互联网连接时?

答案1

小编典典

你应该连接到实际应用程序需要的地方。否则,你要测试是否与某个无关的地方(在这种情况下为Google)建立了连接。

特别是,如果你要尝试与Web服务进行通信,并且要控制该Web服务,则最好使用某种廉价的“获取状态” Web方法。这样,你可以更好地了解“真实”通话是否可能起作用。

在其他情况下,仅打开应打开的端口的连接就足够了-或发送ping命令。InetAddress.isReachable可能很适合你这里的API。

inno-setup – 安装前检查Java是否存在

inno-setup – 安装前检查Java是否存在

我正在为一个jar应用程序创建一个Inno安装程序。
我现在要做的是在继续安装之前检查java是否存在。所以我只需要确保用户能够运行:
java -jar my-app.jar

我现在正在做的是:

[Code]

function InitializeSetup(): Boolean;
var
  ErrorCode: Integer;
  JavaInstalled : Boolean;
  Result1 : Boolean;
begin
  JavaInstalled := RegKeyExists(HKLM,'SOFTWARE\JavaSoft\Java Runtime Environment\1.6');
  if JavaInstalled then
  begin
    Result := true;
  end else
    begin
      Result1 := MsgBox('This tool requires Java Runtime Environment version 1.6 or newer to run. Please download and install the JRE and run this setup again. Do you want to download it Now?',mbConfirmation,MB_YESNO) = idYes;
      if Result1 = false then
      begin
        Result:=false;
      end else
      begin
        Result:=false;
        ShellExec('open','http://javadl.sun.com/webapps/download/AutoDL?BundleId=33787','',SW_SHOWnorMAL,ewNowait,ErrorCode);
      end;
    end;
  end;
end;

我的问题是:

>检查注册表足以确保java的home目录将在PATH中? (能够在控制台中运行“java”)
>如果安装了更高版本的java,那么注册表中的那个密钥是否存在,否则我将不得不检查每个更高版本的可能?
>有没有人有更好的方式来下载java,而不仅仅是显示一个弹出窗口,并将用户带到下载页面?

解决方法

我希望有人觉得这很有用,我所做的是重新使用Inno Setups wiki中的一些代码, >与版本比较为数:
{ Both DecodeVersion and Compareversion functions where taken from the  wiki }
procedure DecodeVersion (verstr: String; var verint: array of Integer);
var
  i,p: Integer; s: string;
begin
  { initialize array }
  verint := [0,0];
  i := 0;
  while ((Length(verstr) > 0) and (i < 4)) do
  begin
    p := pos ('.',verstr);
    if p > 0 then
    begin
      if p = 1 then s:= '0' else s:= copy (verstr,1,p - 1);
      verint[i] := StrToInt(s);
      i := i + 1;
      verstr := copy (verstr,p+1,Length(verstr));
    end
    else
    begin
      verint[i] := StrToInt (verstr);
      verstr := '';
    end;
  end;

end;

function Compareversion (ver1,ver2: String) : Integer;
var
  verint1,verint2: array of Integer;
  i: integer;
begin

  SetArrayLength (verint1,4);
  DecodeVersion (ver1,verint1);

  SetArrayLength (verint2,4);
  DecodeVersion (ver2,verint2);

  Result := 0; i := 0;
  while ((Result = 0) and ( i < 4 )) do
  begin
    if verint1[i] > verint2[i] then
      Result := 1
    else
      if verint1[i] < verint2[i] then
        Result := -1
      else
        Result := 0;
    i := i + 1;
  end;

end;

{ Here's my code }
function InitializeSetup(): Boolean;
var
  ErrorCode: Integer;
  JavaVer : String;
  Result1 : Boolean;
begin
    RegQueryStringValue(HKLM,'SOFTWARE\JavaSoft\Java Runtime Environment','CurrentVersion',JavaVer);
    Result := false;
    if Length( JavaVer ) > 0 then
    begin
        if Compareversion(JavaVer,'1.6') >= 0 then
        begin
            Result := true;
        end;
    end;
    if Result = false then
    begin
        Result1 := MsgBox('This tool requires Java Runtime Environment v1.6 or older to run. Please download and install JRE and run this setup again.' + #13 + #10 + 'Do you want to download it Now?',MB_YESNO) = idYes;
        if Result1 = true then
        begin
            ShellExec('open','http://www.java.com/en/download/manual.jsp#win',ErrorCode);
        end;
    end;
end;

感谢所有的帮助

java – EHCache如何检查缓存中是否存在某些内容?

java – EHCache如何检查缓存中是否存在某些内容?

有没有办法检查对象是否在EHCache托管缓存中?

我面临的挑战是我已经实现了一个从数据库中检索单个值的方法(一个find(key)方法). EHCache很好地缓存了find方法的结果,但现在我想减少多次调用该方法所产生的SQL查询数.

所以实现这个我们实现了一个新方法,因为参数需要一个键列表,但由于每个方法调用的参数不同,EHCache在缓存结果方面做得不好.
EHCache使用方法参数作为缓存的入口点.

所以我想重新设计一些东西.我的想法是,我在查找(键列表)方法中获取参数,执行一个大的SQL查询,然后将结果填入缓存中,我没有把头包裹起来,但写下来后感觉就像手动修改缓存是不行的..

任何见解或提示都表示赞赏!

解决方法

也许 isKeyInCache?

java – 如何检查json密钥是否存在?

java – 如何检查json密钥是否存在?

所以,我从服务器获取了一些JSON值,但我不知道是否会有特定的字段.

所以喜欢:

{ "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited"
}

有时,会有一个额外的字段,如:

{ "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited",
  "club":"somevalue"
}

我想检查名为“club”的字段是否存在,以便在解析时我不会得到org.json.JSONException:俱乐部没有价值

解决方法:

JSONObject类有一个名为“has”的方法:

http://developer.android.com/reference/org/json/JSONObject.html#has(java.lang.String)

Returns true if this object has a mapping for name. The mapping may be NULL.

java-Inno设置:如何检查JRE是否存在,如果不存在,则提示下载?

java-Inno设置:如何检查JRE是否存在,如果不存在,则提示下载?

我在Stack Overflow的任何问题中都找不到这种确切的行为,所以请不要将其标记为重复.

我正在使用Inno Setup开发Java 64位应用程序的安装程序.

使用Inno Setup可以检查计算机中是否存在Java 64位,是否不向用户显示下载Java 64位的链接?

我应该在Inno Setup脚本中添加什么以实现该行为?

最佳答案
在下面,您可以找到一个脚本,该脚本可以检查是否已安装JRE,然后向用户提示一条消息,我已将此Stack Overflow帖子用作参考:How do I install a JRE from an Inno Setup?

[Code]
{ Script to check if a JRE is installed }

function InitializeSetup(): Boolean;
var
  ErrorCode: Integer;
  JavaVer: string;
begin
    RegQueryStringValue(
        HKLM,'SOFTWARE\JavaSoft\Java Runtime Environment','CurrentVersion',JavaVer);
    Result := (Length(JavaVer) > 0);
    if not Result then
    begin
        if MsgBox('YOUR MESSAGE GOES HERE',mbConfirmation,MB_YESNO) = idYes then
        begin
            ShellExec(
              'open','https://www.java.com/en/download/manual.jsp#win','',SW_SHOWnorMAL,ewNowait,ErrorCode);
        end;
    end;
end;

关于如何检查Java中是否存在Internet连接?java检查网络是否连接的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于inno-setup – 安装前检查Java是否存在、java – EHCache如何检查缓存中是否存在某些内容?、java – 如何检查json密钥是否存在?、java-Inno设置:如何检查JRE是否存在,如果不存在,则提示下载?的相关知识,请在本站寻找。

本文标签: