Java Eclipse自动部署不需要';不包括本机库

Java Eclipse自动部署不需要';不包括本机库,java,eclipse,maven,tomcat,j2v8,Java,Eclipse,Maven,Tomcat,J2v8,我在eclipse中有一个Java Web应用程序。我启用了自动部署,因此每当我进行更改时,eclipse都会自动将webapp重新部署到本地Tomcat服务器,我所要做的就是刷新页面。到目前为止,这一切都很顺利 但是,我最近添加了此依赖项: <dependency> <groupId>com.eclipsesource.j2v8</groupId> <artifactId>j2v8_win32_x86_64

我在eclipse中有一个Java Web应用程序。我启用了自动部署,因此每当我进行更改时,eclipse都会自动将webapp重新部署到本地Tomcat服务器,我所要做的就是刷新页面。到目前为止,这一切都很顺利

但是,我最近添加了此依赖项:

    <dependency>
        <groupId>com.eclipsesource.j2v8</groupId>
        <artifactId>j2v8_win32_x86_64</artifactId>
        <version>3.1.6</version>
    </dependency>
因此,eclipse似乎无法在自动部署时加载本机库,即使在我手动部署时工作正常

java.library.path
的值在两种情况下是相同的,但:

C:\Program Files\Java\jdk1.8.0_65\bin;
C:\WINDOWS\Sun\Java\bin;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\ProgramData\Oracle\Java\javapath;
C:\Program Files\ImageMagick-6.9.0-Q16;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
C:\Program Files\ImageMagick-6.8.9-Q16;
C:\Program Files\Java\jdk1.8.0_65;
c:\Program Files (x86)\Intel\iCLS Client\;
c:\Program Files\Intel\iCLS Client\;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;
C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;
C:\Program Files\WIDCOMM\Bluetooth Software\;
C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;
C:\Program Files\TortoiseSVN\bin;
C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;
C:\Program Files (x86)\leJOS NXJ\bin;
C:\Program Files (x86)\Windows Live\Shared;
C:\Program Files\OpenVPN\bin;
C:\Program Files\Java\jdk1.8.0_65\bin;
C:\Program Files\apache-ant-1.9.3\bin;
C:\Program Files\apache-maven-3.2.1\bin;
C:\Users\Kevin\Desktop\gradle-2.2.1\bin;
;
C:\Program Files (x86)\SSH Communications Security\SSH Secure Shell;
.
在这两种情况下,
的位置都是
C:\Users\Kevin\Desktop\eclipse\.
,并且在这两种情况下它都包含相同的文件:

#log.txt#save#
.eclipseproduct
artifacts.xml
configuration
crawl.log
derby.log
dropins
eclipse.exe
eclipse.ini
eclipsec.exe
epl-v10.html
features
notice.html
p2
plugins
Queue.zip
readme
server
StaticVoidGames.log
StaticVoidGames_SystemErr.txt
StaticVoidGames_SystemOut.txt
引发异常的代码行是:

V8 runtime = V8.createV8Runtime();
当我手动部署时,该代码工作正常,但在后续自动部署时失败

我的谷歌搜索结果只显示“重新加载时可能会出现问题”,但没有提供任何解决方案。因此,我的问题是:

  • 为什么eclipse在自动重新部署时不包括本机库

  • 我可以告诉eclipse在自动重新部署时包含本机库吗?有什么我看不到的场景吗

  • 如果自动重新部署根本不支持本机库,是否有官方消息来源这么说


DLL绑定到特定的类加载器。当我们重新部署时,这意味着用于我们的应用程序的类加载器被销毁。不幸的是,Java虚拟机不允许第二个类加载器再次重新加载DLL

我认为可以创建一个加载DLL的Jar文件,并将其添加到Tomcat本身的类路径中,而不是将其添加到我们的应用程序中。通常Tomcat有一个“共享”目录,可以在其中添加所有应用程序共享的jar文件

演示:

1.将jar范围更改为提供的,这样它只能在编译时使用

        <dependency>
            <groupId>com.eclipsesource.j2v8</groupId>
            <artifactId>j2v8_win32_x86_64</artifactId>
            <version>3.1.6</version>
            <scope>provided</scope>
        </dependency>

com.eclipsesource.j2v8

你能说得更具体一点吗?我如何创建这个罐子?这是如何解决类加载器问题的?你有什么例子吗?
        <dependency>
            <groupId>com.eclipsesource.j2v8</groupId>
            <artifactId>j2v8_win32_x86_64</artifactId>
            <version>3.1.6</version>
            <scope>provided</scope>
        </dependency>