小编gav*_*gav的帖子

我应该如何为JNI加载本机库以避免UnsatisfiedLinkError?

我想在Ubuntu 8.10上使用JNI,使用Eclipse和gcc(如果有风味,则使用Ubuntu的标准版).

尽管make文件成功创建,我似乎无法加载我的库.

主要的Java类如下:

class Hello {
    public native void sayHello();

    static {
        System.loadLibrary("hello.so");
    }

    public static void main(String[] args) {
        Hello h = new Hello();
        h.sayHello();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的make文件是这样的;

    all : hello.so

hello.so : Hello.o
    gcc -shared -o hello.so Hello.o

Hello.o : Hello.c Hello.h
    gcc -I/usr/lib/jvm/java-6-sun/include -I/usr/lib/jvm/java-6-sun/include/linux -c Hello.c -o Hello.o

Hello.h : Hello.class
    javah -jni Hello

clean :
    -del Hello.h
    -del Hello.o
Run Code Online (Sandbox Code Playgroud)

其余的代码(Hello.c)看起来像人们想的那样.

我得到的错误如下;

Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello.so in java.library.path
Run Code Online (Sandbox Code Playgroud)

如果我使用显式路径:

System.loadLibrary("/home/gavin/Work/workspace/JNI/hello.so");
Run Code Online (Sandbox Code Playgroud)

然后它可以工作,但如果可能的话,我宁愿不使用显式路径.

c java java-native-interface

16
推荐指数
4
解决办法
5万
查看次数

Android(Java)简单发送和接收服务器 - 快速安装挑战

我正在编写一个Android应用程序,我正在寻找最快的(在设置方面)方式让我将数据发送到服务器并根据请求接收信息.

我们正在谈论基本的东西.我有一个日志文件告诉我用户如何使用我的应用程序(在测试版中,我不会通过不断记录常常运行用户体验)并且我想将它传达给我的服务器(我没有设置).

我不需要安全性,我不需要高吞吐量或并发连接(我有3个手机可以玩)但我需要快速设置它!

我记得当天设置XAMPP特别没脑子,那么也许我可以使用PHP将文件从手机发送到服务器?

理想情况下,服务器可以响应GET,这将允许我发回一些最终影响UI的SQL语句.(这意味着根据最常用的选项调整所呈现的选项).

所以你有它,我大约4年前使用PHP并且如果它是最好的那样将沿着那条路走下去但是如果有某种新的fangled端口打开关闭二进制流唱歌和跳舞方法已经取代该选项我很想知道.

本教程似乎很有用,但我不需要对象序列化,只需来回文本文件,自然压缩.

Android附带了内置的Apache HTTP Client 4.0以及java.net.URL和java.net.HttpUrlConnection,我宁愿不用我的第三方库添加太多bult.

请记住,我也在设置服务器端,所以我正在寻找总体最小代码行!

java android

15
推荐指数
2
解决办法
6万
查看次数

Ant(1.6.5) - 如何在一个<condition>或<if>中设置两个属性

我试图将两个不同的字符串分配给两个不同的变量,这取决于Ant中的两个布尔值.

伪代码(ish):

if(condition)
   if(property1 == null)
      property2 = string1;
      property3 = string2;
   else
      property2 = string2;
      property3 = string1;
Run Code Online (Sandbox Code Playgroud)

我试过的是;

<if>
  <and>
    <not><isset property="property1"/></not>
    <istrue value="${condition}" />
  </and>
  <then>
    <property name="property2" value="string1" />
    <property name="property3" value="string2" />
  </then>
  <else>
    <property name="property2" value="string2" />
    <property name="property3" value="string1" />
  </else>
</if>
Run Code Online (Sandbox Code Playgroud)

但是我得到包含" <if>" 的行的空指针异常.我可以使用<condition property=...>标签让它工作,但一次只能设置一个属性.我尝试过使用,<propertyset>但也不允许这样做.

我是蚂蚁的新手,你可能已经猜到了:).

GAV

ant if-statement properties conditional-statements

13
推荐指数
1
解决办法
4万
查看次数

C语言中switch语句的开销

我是一个相当称职的Java程序员,对C来说很新.我正在尝试优化具有四种操作模式的例程.

我遍历图像中的所有像素,并根据传递的"模式"计算新的像素值.

我的问题是关于两个嵌套for循环中switch语句的开销.我对任何有关基本C语句,数学和逻辑运算的相对效率的文档链接感兴趣.

代码如下:

for (x = 0; x < width; x++) {
        for (y = 0; y < height; y++) {
             switch (mode)                  /* select the type of calculation */
             {
                case 0:
                weight = dCentre / maxDistanceEdge;
                case 1: 
                    weight = (float)x/width;             
                    break;
                case 2: 
                    weight = (float)y/height;
                    break;
                case 3: 
                    weight = dBottomLeft / maxDistanceCorner;
                    break;
                case 4: 
                    weight = dTopRight / maxDistanceCorner;
                    break;
                default: 
                weight = 1;
                break;
            }
             // Calculate the new pixel value given …
Run Code Online (Sandbox Code Playgroud)

c overhead switch-statement

12
推荐指数
4
解决办法
8495
查看次数

服务器编程 - 简单的多人游戏 - 哪种协议和技术?

我有一年的编写客户端代码的经验,但没有服务器的东西.我想稍微限制一下这个问题所以我会简化我想要实现的目标.

我想编写服务器代码,这样两个客户端(浏览器或iPhone/Android)可以连接,当两个玩家连接时,他们会看到计时器倒数为零.时钟将在服务器上同步,客户端将是唯一可识别的.

这里的问题是连接这个词,人们在多人游戏中使用了什么?打开TCP套接字进行双向通信?你可以说我不确定我在说什么.我希望使用AppEngine,但我不确定它是否适合它的请求.

我有一些Java的经验,虽然Erlang听起来是最好的选择,但我只是想玩这个并快速推出,所以Java会更容易.我只需要知道连接球员的最佳方式等.

谢谢,

GAV

google-app-engine

11
推荐指数
2
解决办法
2万
查看次数

C#单元测试 - Thread.Sleep(x) - 如何模拟系统时钟

我必须测试一个间隔后做一定工作量的方法.

while (running)
{
    ...
    // Work
    ...
    Thread.Sleep(Interval);
}
Run Code Online (Sandbox Code Playgroud)

Interval作为参数传递给类,所以我可以传入0或1,但我对如何模拟系统时钟感兴趣,如果不是这样的话.

在我的测试中,我希望能够通过TimeSpan Interval简单地设置时间并让线程唤醒.

我从来没有为之前对执行线程起作用的代码编写测试,我确信有一些缺陷要避免 - 请随意详细说明你使用的方法.

谢谢!

c# multithreading unit-testing

11
推荐指数
1
解决办法
1万
查看次数

C#单元测试 - 生成模拟DataContexts/LINQ - > SQL类

我喜欢C#的新世界,我已经开始尝试我的玩具程序了,我想开始编写一些单元测试.

我的代码目前通过DatabaseDataContext对象(*.dbml文件)使用数据库,为此对象创建模拟的最佳方法是什么?鉴于生成数据库LINQ - > SQL代码是多么容易,以及请求的常见程度,我希望VS2010具有内置功能来帮助进行测试.

如果我要离开,这必须手动完成,请您告诉我您的首选方法?

非常感谢,

加文

.net c# database testing

10
推荐指数
1
解决办法
5043
查看次数

超简单的XMPP服务器或简单的自定义Openfire组件的建议

我需要一台服务器来发送和接收来自运行我正在编写的多人游戏的Android客户端的XMPP消息.我之所以选择XMPP是因为我不想长时间轮询,而套接字可能会成为蜂窝网络的问题(运营商可能阻止它们).

我一直在看OpenFire听起来很神奇,我不需要管理面板语音聊天,聊天室等等.它似乎非常重量级,面向企业的聊天解决方案,我只需要匹配玩家并传递他们的动作在最后记录得分.是否有一个简化的OpenFire版本,所以我可以注册一个组件,它将服务所有请求?关于使用openfire进行适应,我找不到添加自定义组件来执行类似任务的明确示例.

我需要的是一个库或现有的简单服务器,我可以运行并注册我的自定义消息监听器.我只需要能够为任何进入的请求提供服务并做出适当的响应.我希望我不必编写线程管理,因为这个问题对于典型的聊天服务器来说很常见,但我确实需要编写代码来解释和响应发送的消息.

我希望这是有道理的,任何编写过这样一段服务器代码的人都会喜欢这个例子.对于那些没有尝试过,但想知道如何开始的人,请加入!越详细越好.

提前致谢,

GAV

java xmpp

9
推荐指数
1
解决办法
1万
查看次数

简单的线程管理 - Java - Android

我有一个应用程序,当用户要求过滤图像时会生成一个新线程.

这是我所拥有的唯一类型的任务,并且所有任务都同等重要.

如果我要求太多并发线程(我想要的最大值是9),线程管理器会抛出RejectedExecutionException.

在那一刻,我所做的是;

// Manage Concurrent Tasks
private Queue<AsyncTask<Bitmap,Integer,Integer>> tasks = new LinkedList<AsyncTask<Bitmap,Integer,Integer>>();

@Override
public int remainingSize() {
    return tasks.size();
}

@Override
public void addTask(AsyncTask<Bitmap, Integer, Integer> task) {
    try{
        task.execute(currentThumbnail);
        while(!tasks.isEmpty()){
            task = tasks.remove();
            task.execute(currentThumbnail);
        }
    } catch (RejectedExecutionException r){
        Log.i(TAG,"Caught RejectedExecutionException Exception - Adding task to Queue");
        tasks.add(task);
    }
}
Run Code Online (Sandbox Code Playgroud)

只需将被拒绝的任务添加到队列中,下次启动线程时,将检查队列以查看是否存在待办事项.

显而易见的问题是,如果最终任务在第一次尝试时被拒绝,它将永远不会重新启动(直到它不再需要它之后).

只是想知道我是否应该使用一个简单的模型来管理这类事情.我需要任务在完成后通知队列,所以我知道有空间,但我不确定如何.

亲切的问候,

加文

java multithreading android

8
推荐指数
1
解决办法
1万
查看次数

使用XElement.Elements方法,我可以找到带有通配符名称空间但名称相同的元素吗?

尝试对XML文档进行简单的解析.取出下面两个PropertyGroups的最简单方法是什么?

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     1
  </PropertyGroup>
  <PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     2
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用XElement.Elements(XName),但为了这样做,我需要在PropertyGroup前加上xmlns.问题是我不关心名称空间,如果它将来发生变化,我仍然希望检索所有PropertyGroups.

 var xml = XElement.Load(fileNameWithPath);
 var nameSpace = xml.GetDefaultNamespace();

 var propertyGroups= xml.Elements(nameSpace + "PropertyGroup");
Run Code Online (Sandbox Code Playgroud)

您是否可以改进此代码,以便我不需要使用nameSpace作为前缀?我知道我基本上可以重新实现Elements方法,但我希望有一些方法来传递通配符名称空间?

谢谢,

加文

c# xml

7
推荐指数
1
解决办法
4909
查看次数