如果把java转换为应用程序,那不就违背了java得初衷了吗-----跨平台?

解决方案 »

  1.   

    http://www.linar.com/jintegra/doc/javafromcom/vc2java.html
      

  2.   


    java源码用什么编译?java编译器吗?那么java代码用什么解释?JVM吗?
      

  3.   


    <<<<<接楼上(都是一个人)>>>>>  那还是exe应用程序吗?
      

  4.   

    用vj吧可直接转化成可执行文件
    但要先反编译,再在vj中重新编译
      

  5.   

    提到反编译,大家都知道java的class文件如果没有进行加密,
    是可以用反编译工具如 Jad,Mochca 生成原程序的。
    反止反编译也是一些程序员头疼的事!!介绍大家一个不错的免费的java IDE。
    http://www.jcreator.com/
      

  6.   

    提到反编译,大家都知道java的class文件如果没有进行加密,
    是可以用反编译工具如 Jad,Mochca 生成原程序的。
    反止反编译也是一些程序员头疼的事!!介绍大家一个不错的免费的java IDE。
    http://www.jcreator.com/
      

  7.   

    hi hccpro, java的源代码呢,也是用java来编译的,呵呵 ... 看看javac.exe的大小,不觉得可疑吗?其实javac就是本地代码调用java class的一个例子 :) 也正因为如此,有人将xml中带的java代码动态编译成class然后在执行,好象很cool的样子,呵呵 ... 有机会我也要试^O^
      

  8.   

    i got a way.
    first use a .bat file,
    in the file, ...
    java yourfile
    ....
    then ...
      

  9.   

    faint ... 补充:在un*x下用shell script ...哦,刚刚说的东西可以看看tomcat里编译jsp的部分 :)
      

  10.   

    to Dureek(普博) 
    " 有啊,在windows平台上可以用jet, 但是最好还是用Visual Cafe 4什么的 :) "jet 和 Visual Cafe 4 也可以 生成exe 文件吗!!
    请提供相关的网址让别人参阅!
      

  11.   

    to Kert_ake(kert) 你的办法也可以啊!!!总结( 自Kert_ake(kert) )
    1)同目录 有hello.bat, hello.class
    2)在 hello.bat 中写 java hello
    3)运行hello-------------
    以上的办法如果在 没有设 path 和没有 jdk 是不行的。
      

  12.   

    5555555555555 ... ~~~~~~>_<~~~~~~
      

  13.   

    图形界面的java程序,还用个Bat文件,不是很烦么?
      

  14.   

    有点晕,那你还用java干什么?
    干脆完全c得了,
      

  15.   

    这与JAVA的初衷相违背,如果作单一平台的软件,还是编译后的二进制代码程序快,就没必要用JAVA了,如果跨平台,你不用JAVA用什么,效率和通用性本来就是矛盾的。
      

  16.   


    果然,java\bin目录下的可执行文件都是20kb!!!!!!!!可疑!!!俺支持您,做出来的话俺义务测试!
      

  17.   

    前段时间用C做的,在linux下调试通过 :)
    注: jdk1.2.2, jvm不是hotspot
    --
    * 先做准备一个待调用的java class, 比如:
    class cool {
    public static void main(String[] args) {
    System.out.println("Cool!");
    }
    }* 准备调用jvm的c程序, 比如
    //list of showme.c
    #include <jni.h>#ifdef _WIN32
    #define PATH_SEPARATOR ';'
    #else /* UNIX */
    #define PATH_SEPARATOR ':'
    #endif#define USER_CLASSPATH "."main() {
    JNIEnv *env;
    JavaVM *jvm;
    JDK1_1InitArgs vm_args;
    jint res;
    jclass cls;
    jmethodID mid;
    jstring jstr;
    jobjectArray args;
    char classpath[1024]; vm_args.version = 0x00010001; JNI_GetDefaultJavaVMInitArgs(&vm_args); sprintf(classpath, "%s%c%s", vm_args.classpath, PATH_SEPARATOR, USER_CLASSPATH);
    vm_args.classpath = classpath;

    res = JNI_CreateJavaVM(&jvm, (void **)&env, &vm_args); if (res < 0) {
    printf("Can't create Java VM\n");
    exit(1);
    } cls = (*env)->FindClass(env, "cool");
    if (cls == 0) {
    printf("Can't find Cool class\n");
    exit(1);
    }

    mid = (*env)->GetStaticMethodID(env, cls, "main", "([Ljava/lang/String;)V");
    if (mid == 0) {
    exit(1);
    }

    jstr = (*env)->NewStringUTF(env, "hell!");

    if (jstr == 0) {
    printf("Out of memory\n");
    exit(1);
    } (*env)->CallStaticVoidMethod(env, cls, mid, jstr); /* printf("killing jvm ... "); */
    (*jvm)->DestroyJavaVM(jvm);
    /* printf("done!\n");          */}
    //end of list* 在linux下编译showme.c
    [假设jdk为1.2.2, 安装在/usr/local下]
    [建议将/usr/local/jdk1.2.2/jre/lib/i386, /usr/local/jdk1.2.2/jre/lib/i386/classic, /usr/local/jdk1.2.2/jre/lib/i386/native_threads三个目录加到/etc/ld.so.conf]
    ~: gcc -I/usr/local/jdk1.2.2/include -I/usr/local/jdk1.2.2/include/linux -L/usr/local/jdk1.2.2/jre/lib/i386/classic -ljvm -D_REENTRANT -lpthread showme.c -o showme* 运行showme(假设cool.class和showme在同一目录下)~: ./showme
    > Cool!--
    to hccpro:
    不要以为不可能哦~ 这次就有可能要做,呵呵 ...
      

  18.   

    你要做的事,我很早以前做過,那時還到處找呢 
    沒錯 jet 和 visual cafe 2.5 以上版本        
    就可以把 java 程序轉成可執行程序 exe 了 
    但是 Visual Cafe 是不能把 .class 直接 
    轉成 exe 的,它只能編繹你的 java 源代碼      
    變成可執文件,而 jet 則能把你的 .class 文件
    轉變成 exe,但是生成的 exe 不及 VisualCafe 
    生成的 exe,你自己衡量下吧. 
    但是如果你只有 .class 文件千萬不要用 jad 把
    它反組繹成 *.java ,再用 VisualCafe 把它變成 
    可執行文件 exe ,因為那將是你的不幸,
    如果你的 *.class 程序稍為複雜,那你將面對反組
    繹的程序不是你想要的程序,雖然它可能編繹成功       
    我曾經為了反組繹一條 java  程序花了三個星期  
    因為要為反組繹後的源程式碼除錯... 
    Good Luck   
      

  19.   

    我是說 exe 的執行速度呀 
      

  20.   

    To Dureek 
    你有沒有考慮到運行庫的問題呢 
    把你的程序拿到別人的機械上跑 
    別人也一定有你的運行庫嗎???       To ServletBoy 
    還有 jet 好像是運行 mfc 庫的 
    而 VisualCafe 則是要運行它自己的
    運行庫的,所以如果要運行 VisualCafe 
    編繹出來的 exe ,一定要裝上它的運行庫
    好像叫甚麼 snjrt*.exe 的. 
    至於 jet 到 www.newhua.com 處找吧 
    VisualCafe 到各大院校的 ftp 處找吧 
    一定有的,( 好像北大的 ftp 有 ) . 
      

  21.   

    snjrt*.exe 是一個運行庫的 
    安裝版本,它會把所需的運行庫 
    安裝到你的機械上.
    如果己經安裝了 VisualCafe 那麼
    運行庫己經安裝了.
      

  22.   

    還有 VisualCafe 有些版本 
    是不能把 java 程序編繹成 exe 的 . 
      

  23.   

    to ken88:
    因为servletboy说"通过 C++ 调用  java hello 的方法 不知如何!再把C++文件编译成执行文件。" 所以 ... 不过你确实提醒我了,谢谢 :) 不知怎么的,总觉得每个人的机器上都应该有jre, 因此也忽略了很多问题, hehehe ...
      

  24.   

    大哥,想干exe,干嘛往sun的java上钻,你还是学好java。再搞个china*的java!来搞exe!
      

  25.   

    JAVA应用程序如何在没有JDK,JRE开发环境中动行呢???
      

  26.   

    哇!这里可成了论坛了!首先多谢 ken88(ken88)大侠对 jet 和 VisualCafe 在java生成应用程序的分析!!大家尽管发言吧,希望其他人看了这篇文章之后也有所收获!!!不用再为找相关的信息头疼!!
      

  27.   

    但如果没可执行文件,java的class岂不是一定要跟着jvm,这样很烦的,又没有什么优化措施,先谢谢了