目录

  • J2V8 简介
  • 编译J2V8
    • win32_x86_64版本
      • 准备编译环境
      • clone J2V8的源码
      • 运行 j2v8-cli.cmd
      • clone Node.js 源码
      • 开始编译
      • 编译生成Jar包目录
    • linux_x86_64版本
      • 编译中出现的错误

J2V8 简介

J2V8 是对 Google 的 JavaScript 引擎 V8 的 Java 封装,J2V8 的开发为Java 或是 Android 可以高效得执行 JavaScript 带来了可能。
Github地址

编译J2V8

在GitHub中,作者主要目的是使用J2V8进行tabris.js这个多平台js引擎的开发,用于在Android设备上执行JavaScript。只提供了Android版本最新的aar包,没有最新的jar包,因此根据作者提供的编译教程进行编译。

Github官方编译教程

win32_x86_64版本

准备编译环境

  • Python2
  • vs2017
  • jdk
  • windows 64位PC

以上是确定需要的,我电脑本身就有一些编译环境已经安装,不确定是否还有其他需要的

clone J2V8的源码

Github源码地址 将代码clone到本地

运行 j2v8-cli.cmd

编译工具链,运行后才可进行后面的编译,每次开始编译都需要运行一次

clone Node.js 源码

nodejs git clone 使用这个命令把nodejs的源码下载下来
nodejs diff apply 将所需修改应用于node.js源代码

开始编译

编译的步骤

Node.js --> CMake --> JNI --> C++ --> Optimize --> Java/Android Build --> Java/Android Test

确定需要编译的版本为win32_x86_64版本

作者提供了多种编译方式,我在编译过程中出了很多错误,需要单步解决bug,故推荐一步一步进行编译。

1. build -t win32 -a x64 Node.js
2. build -t win32 -a x64 j2v8cmake
3. build -t win32 -a x64 j2v8jni
4. build -t win32 -a x64 j2v8cpp
5. build -t win32 -a x64 j2v8optimize
6. build -t win32 -a x64 j2v8java

编译生成Jar包目录

./build.out/j2v8_{platform}_{abi}-{j2v8_version}.jar

linux_x86_64版本

需要在linux 64环境下进行编译,可搭建linux虚拟机进行编译

编译工具链命令为

source j2v8-cli.sh

单步编译命令前缀改为

build -t linux -a x64

其余步骤相似

编译中出现的错误

在单步编译的话可能报错,遇到错误解决后再继续进行当前步骤的编译。
大部分的错误都是找不到一些编译需要用到的工具,应安装这些工具或添加环境变量后继续。

E:\j2v8\J2V8-master>build -t win32 -a x64 j2v8cpp
Checking Node.js builtins integration consistency...
--------------------------------------------------
V8:      5.4.500.45 (candidate: False)
Node.js: 7.4.0 (release: True)
--------------------------------------------------
Caching Node.js artifacts...
>>> Node.js build-cache used: win32.x64Microsoft Windows [版本 10.0.16299.431]
Updating Maven configuration (./docker/shared/pom.xml)...
SHELL building win32@x64 => j2v8cpp
'msbuild' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Traceback (most recent call last):File "build.py", line 18, in <module>bex.execute_build(args)File "E:\j2v8\J2V8-master\build_system\build_executor.py", line 314, in execute_buildexecute_build_step(target_compiler, target_step)File "E:\j2v8\J2V8-master\build_system\build_executor.py", line 230, in execute_build_stepbuild_system.build(build_step)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 83, in buildself.exec_build(config)File "E:\j2v8\J2V8-master\build_system\shell_build.py", line 27, in exec_buildself.exec_cmd(shell_str, config)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 96, in exec_cmdself.__exec_cmd_core(cmd, config, config.build_cwd)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 105, in __exec_cmd_coreutils.execute(cmd, cwd)File "E:\j2v8\J2V8-master\build_system\build_utils.py", line 157, in executeraise subprocess.CalledProcessError(return_code, cmd)
subprocess.CalledProcessError: Command 'cd E:/j2v8/J2V8-master && cd ./cmake.out/win32.x64/ && msbuild j2v8.sln /property:Configuration=Release' returned non-zero exit status 1

解决方案:需要在系统环境变量中的path变量中添加一条路径,如C:\Windows\Microsoft.NET\Framework\v4.0.30319 C:\Windows\Microsoft.NET\Framework64\v4.0.30319

E:\j2v8\J2V8-master>build -t win32 -a x64 j2v8java
Checking Node.js builtins integration consistency...
--------------------------------------------------
V8:      5.4.500.45 (candidate: False)
Node.js: 7.4.0 (release: True)
--------------------------------------------------
Caching Node.js artifacts...
>>> Node.js build-cache used: win32.x64Microsoft Windows [版本 10.0.16299.431]
Updating Maven configuration (./docker/shared/pom.xml)...
SHELL building win32@x64 => j2v8java
Updating Maven configuration (./pom.xml)...
Copying native lib from: ./cmake.out/win32.x64/Release\libj2v8-windows-x86_64.dll to: src/main/resources/
Using system-var JAVA_HOME
'mvn' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Traceback (most recent call last):File "build.py", line 18, in <module>bex.execute_build(args)File "E:\j2v8\J2V8-master\build_system\build_executor.py", line 314, in execute_buildexecute_build_step(target_compiler, target_step)File "E:\j2v8\J2V8-master\build_system\build_executor.py", line 230, in execute_build_stepbuild_system.build(build_step)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 83, in buildself.exec_build(config)File "E:\j2v8\J2V8-master\build_system\shell_build.py", line 27, in exec_buildself.exec_cmd(shell_str, config)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 96, in exec_cmdself.__exec_cmd_core(cmd, config, config.build_cwd)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 105, in __exec_cmd_coreutils.execute(cmd, cwd)File "E:\j2v8\J2V8-master\build_system\build_utils.py", line 157, in executeraise subprocess.CalledProcessError(return_code, cmd)
subprocess.CalledProcessError: Command 'cd E:/j2v8/J2V8-master && python E:/j2v8/J2V8-master/build_system/polyfills/cp.py ./cmake.out/win32.x64/Release\libj2v8-windows-x86_64.dll src/main/resources/ && mvn clean verify -e --batch-mode -DskipTests && python E:/j2v8/J2V8-master/build_system/polyfills/mkdir.py build.out && python E:/j2v8/J2V8-master/build_system/polyfills/cp.py target/j2v8_win32_x86_64-5.1.0-SNAPSHOT.jar build.out/' returned non-zero exit status 1

需要安装maven和添加环境变量

欢迎关注我的公众号,持续分析优质技术文章

J2V8:编译J2V8最新版Jar包相关推荐

  1. java动态编译无法导包_java动态编译整个项目,解决jar包找不到问题.doc

    java动态编译整个项目,解决jar包找不到问题.doc 还剩 8页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 64. } 65. 66. /*** ...

  2. 【一整套】如何下载Jackson官方的三个最新版jar包

    如何下载官方Jackson的三个最新版jar包 说明: 官方下载地址:http://repo1.maven.org/maven2/com/fasterxml/jackson/core/ 当前下载日期: ...

  3. android源码编译jar,在android源码编译中导入第三方jar包

    源码编译,我们可以只留下app的src,res目录和androidmanifest.xml文件,在app的根目录添加一个android.mk文件,还有我们需要导入的jar包,我这里是libjsoup- ...

  4. Java--使用反编译工具,打开jar包,查看源码

    操作系统:Windows 1.反编译工具: 链接:https://pan.baidu.com/s/1GwglWXc_lj5Q60g1t16lTA 提取码:tf5l  2.下载好后,解压至自己存放的路径 ...

  5. 既使用maven编译,又使用lib下的Jar包

    既使用maven编译,又使用lib下的Jar包 在项目开发中,项目用maven管理,是一个maven项目.  一般情况下jar包都可以使用pom.xml来配置管理,但也有一些时候,我们项目中使用了一个 ...

  6. 如何修改可运行Jar包,如何反编译Jar包

    将可运行Jar包,反编译成项目,修改代码,再次编译,打包. 需要工具:jd-gui.myeclipse 具体步骤: 1.使用jd-gui打开原始的Jar包,选择File-->Save All  ...

  7. java如何转成jar包,修改及反编译可运行Jar包实现过程详解

    将可运行Jar包,反编译成项目,修改代码,再次编译,打包. 需要工具:jd-gui.myeclipse 具体步骤: 1.使用jd-gui打开原始的Jar包,选择File-->Save All S ...

  8. IDEA—使用插件反编译jar包

    关注微信公众号:CodingTechWork,一起学习进步. 引言   在产品上线后,如果遇到问题阻塞,我们第一步要做的就是去查看日志,但是代码不是一个人写的,说不定就会遇到没有日志的,遇到这种情况, ...

  9. [转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件)

    [转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件) 文章分类:Java编程 该软件无需安装,界面清爽. 转自:http://www.devdoc.org/index.php/a ...

最新文章

  1. 第十一周作业关于json
  2. 关于学习Python的一点学习总结(18->序列解包)
  3. lnmp mysql 路径_LNMP笔记:更改网站文件和MySQL数据库的存放目录
  4. centos启动流程
  5. typecho 邮件mail插件 LoveKKCommentModify 美化版
  6. 计科14-1 140201125 王振禹 作业三
  7. Sql Server数据库备份和恢复:原理篇
  8. 解决UICollectionViewCell/UITableViewCell因重用机制导致的错乱问题
  9. 1.1.1.1校园网_突破校园网限制,开启寝室Wifi
  10. arcgis中python计算面积的表达式_ArcGIS应用——四种计算图斑面积的方法
  11. openwrt utc时区修改
  12. 苹果怎么锁定计算机,苹果电脑如何锁定屏幕-mac锁定屏幕教程 - 河东软件园
  13. PhpStorm 2016.2 Mac破解版
  14. java bounce tale_bouncetales蹦球传说安卓版
  15. 沉浸式WebXR开发技术架构
  16. 计算机应用行距怎么弄,电脑行间距在哪里设置
  17. 使用Ajax自动获取QQ头像昵称
  18. (更新时间)2021年5月15日 Nginx服务器 Nginx面试题
  19. DataStage记录
  20. 为什么国内的软件很臃肿,而且还没有国外的发达?

热门文章

  1. 视锥体与AABB和OBB包围盒相交判断
  2. Android ITelephony EndCall Remove 各版本挂断、拦截电话方法
  3. c语言小游戏10例,C语言的应用 小游戏为例.doc
  4. 考研英语——书本资料选择复习规划
  5. 屋面房顶白色外壁降温用凉凉胶隔热面漆 隔热性能十分优异
  6. Mysql性能优化及主从同步-mysql-xing-neng-you-hua-ji-zhu-cong-tong-bu
  7. php格式视频怎么下载链接,php – 如何找到vimeo视频的下载链接?
  8. html网页设计代码作业——代码质量好-重庆火锅(5页) HTML+CSS+JavaScript 大学生网页制作期末作业
  9. ORACLE数据库NLS_CHARACTERSET和NLS_NCHAR_CHARACTERSET区别
  10. 【读者群答疑】使用xlwings编程进行调试时会在后台留下若干Excel进程,如何解决?