小编Ken*_*Ken的帖子

如何更改Eclipse/ANT的JAVA.HOME

我正在尝试使用ANT脚本签署一个jar文件.我知道必须指向jarsigner.exe要运行的JDK目录,但是当我回显java.home时,它返回JRE目录.

这对javac来说不是问题,因为我可以设置可执行路径.但是,signjar并不存在.

如何更改java.home路径?当我右键单击MyComputer并转到:

属性>高级>环境变量

"PATH"变量正确指向JDK(C:\program files\java\jdk\bin).

更新:更改下面建议的PATH变量后,文件现在正确签名.

java eclipse ant environment-variables java-home

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

JNI Hello World不满意链接错误

这是我第一次尝试JNI.我的最终目标是让当前在机器上运行的所有任务,但需要运行一个简单的示例.当我尝试执行我的主程序时,我不断收到此错误.我提供了简单的Java主程序,生成的头文件和错误.

我不知道这个DLL可以依赖什么.它最初引用了我追踪并放入system32(msvcr90.dll)的DLL.

这是我用来编译C代码的命令,它生成了DLL,OBJ,LIB,EXP和清单文件.

cl -I"C:\ Program Files\Java\jdk1.6.0\include"-I"C:\ Program Files\Java\jdk1.6.0\include\win32"-MD -LD HelloWorld.c -FeHelloWorld.dll

class HelloWorld {
     private native void print();
     public static void main(String[] args) {
         new HelloWorld().print();
     }
     static {
         System.load("C:\\temp\\HelloWorld.dll");
     }
 }


#include <jni.h>
 #include <stdio.h>
 #include "HelloWorld.h"

 JNIEXPORT void JNICALL 
 Java_HelloWorld_print(JNIEnv *env, jobject obj)
 {
     printf("Hello World!\n");
     return;
 }

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" { …
Run Code Online (Sandbox Code Playgroud)

java java-native-interface

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

签署从Eclipse 3.5导出的jar文件?

从Eclipse 3.5导出jar文件时是否可以签名?或者允许这种情况发生的插件?

我可以轻松导出一个可运行的jar,并使用jarsigner自己进行签名,但手动执行此操作每次更改都无效.

eclipse jar sign

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

Java中线程的同步

我的应用程序中有一个自制的Web服务器.此Web服务器为进入要接受的套接字的每个请求生成一个新线程.我希望Web服务器等到它刚创建的线程中的特定点被命中.

我已经浏览过本网站上的很多帖子和网络上的例子,但在告诉线程等待之后,我无法继续使用Web服务器.一个基本的代码示例会很棒.

synchronized关键字是正确的方法吗?如果是这样,怎么能实现呢?代码示例在我的应用程序下面:

网络服务器

while (true) {
  //block here until a connection request is made
  socket = server_socket.accept();

  try {
    //create a new HTTPRequest object for every file request
    HttpRequest request = new HttpRequest(socket, this);

    //create a new thread for each request
    Thread thread = new Thread(request);

    //run the thread and have it return after complete
    thread.run();

    ///////////////////////////////
    wait here until notifed to proceed
    ///////////////////////////////
  } catch (Exception e) {
    e.printStackTrace(logFile);
  }
}
Run Code Online (Sandbox Code Playgroud)

线程代码

public void run() {
  //code here …
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronized

5
推荐指数
2
解决办法
2813
查看次数

强制VM以32位模式WebStart JNLP启动

我正在通过Web Start在Mac OS X Leopard上运行Java 32位应用程序.我需要确保VM以32位模式加载.我怎样才能在JNLP中做到这一点?

macos jnlp java-web-start

5
推荐指数
1
解决办法
7472
查看次数