2012-03-28 30 views
0

enter code here我已經創建了一個簡單的代碼,用於將虛擬磁盤安裝到系統中,使用來自標準安裝包的示例。 Java示例。所以,在我創建了幾個單元測試之後,第一個是將光盤安裝到系統中,並檢查第二個安裝盤是否嘗試安裝磁盤並嘗試創建簡單文件以檢查/處理創建/打開等事件文件,所以,如果我只使用一個測試,所有工作都很好,如果兩個我收到錯誤no jnicbfs in java.library.path有人能幫我解決這個問題嗎? P.S. - 許可證是試驗 - 簡單代碼下面回調文件系統和「java.library.path中沒有jnicbfs」錯誤

@Override 
    public boolean createVirtualDisk(String diskLetter) { 

     CallbackFileSystem callbackFileSystem; 
     boolean isCreated = true; 

     try { 

      // create CbFS instance 
      callbackFileSystem = new CallbackFileSystem(new CloudFileSystemEventHandler()); 

      //initialize system properties 
      initCallBackFileSystemProperties(diskLetter, callbackFileSystem); 

      // mount point 
      callbackFileSystem.mountMedia(0); 

     } catch (ECBFSError e) { 
      LOGGER.error(e.getMessage(), e); 
      isCreated = false; 
     } 

     return isCreated; 
    } 

    private void initCallBackFileSystemProperties(String volumeKey, CallbackFileSystem callbackFileSystem) throws ECBFSError { 
     callbackFileSystem.setRegistrationKey(cloudFileSystemProperties.getLicenseKey()); 
     callbackFileSystem.setSerializeCallbacks(cloudFileSystemProperties.isSerializeCallbacks()); 
     callbackFileSystem.setThreadPoolSize(cloudFileSystemProperties.getThreadPoolSize()); 
     callbackFileSystem.setProcessRestrictionsEnabled(cloudFileSystemProperties.isProcessRestrictionsEnabled()); 
     callbackFileSystem.createStorage(); 
     callbackFileSystem.disableMetaDataCache(cloudFileSystemProperties.isMetaDataCacheDisable()); 
     callbackFileSystem.addMountingPoint(volumeKey); 
    } 

測試 1:

 CbFSProperties cbFSProperties = createCloudFileSystemProperties(); 
     // create CloudFileSystemImpl context 
     CloudFileSystemContext cloudFileSystemContext = new CloudFileSystemContext(cbFSProperties); 


     // create volume 
     CloudFileSystem cloudFileSystem = new CloudFileSystemImpl(cloudFileSystemContext); 
// 
     boolean isCreated = cloudFileSystem.createVirtualDisk("R:"); 

     // check if volume was created correctly 
     CallbackFileSystem callbackFileSystem = new CallbackFileSystem(); 
     callbackFileSystem.setRegistrationKey(cbFSProperties.getLicenseKey()); 

     // check created or not 
     Assert.assertEquals(true, isCreated); 

     // the same assertion 
     Assert.assertEquals("R", callbackFileSystem.getMountingPoint(0)); 

2:

CbFSProperties cbFSProperties = createCloudFileSystemProperties(); 
// create CloudFileSystemImpl context 
CloudFileSystemContext cloudFileSystemContext = new CloudFileSystemContext(cbFSProperties); 

// create volume 
CloudFileSystem cloudFileSystem = new CloudFileSystemImpl(cloudFileSystemContext); 

boolean isCreated = cloudFileSystem.createVirtualDisk("S:"); 

if (isCreated) 
    createFileOnDisk("S:\\test.txt"); 
else 
    Assert.assertTrue("The disk was not created.", false); 

的Maven用的java.library.path文件

http://maven.apache.org/m艾文-v4_0_0.xsd「>

<dependencies> 

    <dependency> 
     <groupId>eldos</groupId> 
     <artifactId>eldos.cbfs</artifactId> 
     <version>1.0.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.6.4</version> 
    </dependency> 

    <!--&lt;!&ndash; Testing&ndash;&gt;--> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.2</version> 
     <scope>test</scope> 
    </dependency> 
    <!--Other --> 
</dependencies> 


<build> 
    <resources> 
     <!-- standard Maven folder --> 
     <resource> 
      <directory>src/main/resources</directory> 
     </resource> 
     <!-- plus root folder --> 
     <resource> 
      <directory>.</directory> 
      <includes> 
       <include>plugin.xml</include> 
       <include>META-INF/*</include> 
      </includes> 
     </resource> 
     <resource> 
      <directory>${basedir}/target/dependency</directory> 
      <targetPath>.</targetPath> 
     </resource> 
    </resources> 

    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>${source.target.version}</source> 
       <target>${source.target.version}</target> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>unpack</id> 
        <phase>compile</phase> 
        <goals> 
         <goal>unpack</goal> 
        </goals> 
        <configuration> 
         <artifactItems> 
          <artifactItem> 
           <groupId>eldos</groupId> 
           <artifactId>eldos.cbfs</artifactId> 
           <version>1.0.0</version> 
           <!--<classifier>eldos.cbfs</classifier>--> 
           <type>jar</type> 
           <overWrite>true</overWrite> 
           <outputDirectory>${project.build.directory}/lib</outputDirectory> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <systemProperties> 
        <property> 
         <name>java.library.path</name> 
         <value>target/lib/</value> 
        </property> 
       </systemProperties> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <useDefaultManifestFile>true</useDefaultManifestFile> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

+0

嘗試設置'-Djava.library.path = <包含jnicbfs.dll或其它內容的文件夾的位置>'請參閱http://stackoverflow.com/questions/1734207/how-to-set-java-library -path-for-processing – ecle 2012-03-28 13:23:20

+0

@eee我已經setuped了它,只是編輯了mu的問題並添加了maven文件,BTW一個單元測試正在工作兩個不是 – 2012-03-28 13:36:46

回答

0

我用系統屬性java.library.path不setuped,在這之後我試圖使用特殊性能和所有工作正常,描述在blog

工作maven插件是

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <configuration> 
     <forkMode>once</forkMode> 
     <workingDirectory>target</workingDirectory> 
     <argLine>-Djava.library.path=${basedir}/lib</argLine> 
    </configuration> 
</plugin> 
相關問題