[ https://issues.apache.org/jira/browse/NIFI-4685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16620727#comment-16620727 ]
Imre edited comment on NIFI-4685 at 9/19/18 3:53 PM: ----------------------------------------------------- I just bumped into the same issue (NiFi v1.7.1). In my case, running on Windows, I created my own batch file to start NiFi, with the lib directory of NiFi being installed in {{c:\Program Files\NiFi}}, and all generated files (logs, internal DB, etc.) pointed to {{C:\ProgramData\NiFi}}. (I modified several NiFi config files to achieve this.) I happened to start the batch file from somewhere other than the NiFi root dir in {{C:\Program Files\NiFi}}, and I got the following exception (due to the above code): {{2018-09-19 09:30:25,895 INFO [main] org.apache.nifi.NiFi Launching NiFi...}} {{2018-09-19 09:30:25,906 ERROR [main] org.apache.nifi.NiFi Failure to launch NiFi due to java.nio.file.NoSuchFileException: lib\bootstrap}} {{java.nio.file.NoSuchFileException: lib\bootstrap}} {{at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)}} {{at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)}} {{at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)}} {{at sun.nio.fs.WindowsDirectoryStream.<init>(WindowsDirectoryStream.java:86)}} {{at sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:518)}} {{at java.nio.file.Files.newDirectoryStream(Files.java:457)}} {{at java.nio.file.Files.list(Files.java:3451)}} {{at org.apache.nifi.NiFi.createBootstrapClassLoader(NiFi.java:197)}} {{at org.apache.nifi.NiFi.convertArgumentsToValidatedNiFiProperties(NiFi.java:299)}} {{at org.apache.nifi.NiFi.main(NiFi.java:291)}} Although, interestingly, starting Java on the command-line from the {{C:\Program Files\NiFi}} directory also results in the same exception, even though there's definitely a {{lib\bootstrapper}} directory there relative to the current dir... was (Author: olajos): I just bumped into the same issue. In my case, I'm running on Windows, I created my own batch file to start NiFi, with the lib directory of NiFi being installed in {{c:\Program Files\NiFi}}, and all generated files (logs, internal DB, etc.) pointed to {{C:\ProgramData\NiFi}}. I happened to start the batch file from somewhere other than the NiFi root dir in {{C:\Program Files\NiFi}}, and I got the following exception (due to the above code): {{2018-09-19 09:30:25,895 INFO [main] org.apache.nifi.NiFi Launching NiFi...}} {{2018-09-19 09:30:25,906 ERROR [main] org.apache.nifi.NiFi Failure to launch NiFi due to java.nio.file.NoSuchFileException: lib\bootstrap}} {{java.nio.file.NoSuchFileException: lib\bootstrap}} {{at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)}} {{at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)}} {{at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)}} {{at sun.nio.fs.WindowsDirectoryStream.<init>(WindowsDirectoryStream.java:86)}} {{at sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:518)}} {{at java.nio.file.Files.newDirectoryStream(Files.java:457)}} {{at java.nio.file.Files.list(Files.java:3451)}} {{at org.apache.nifi.NiFi.createBootstrapClassLoader(NiFi.java:197)}} {{at org.apache.nifi.NiFi.convertArgumentsToValidatedNiFiProperties(NiFi.java:299)}} {{at org.apache.nifi.NiFi.main(NiFi.java:291)}} > Hardcoded path when creating Bootstrap ClassLoader in Nifi > ---------------------------------------------------------- > > Key: NIFI-4685 > URL: https://issues.apache.org/jira/browse/NIFI-4685 > Project: Apache NiFi > Issue Type: Bug > Components: Configuration, Core Framework > Affects Versions: 1.4.0 > Environment: Windows 7, JRE 1.8.0_144 > Reporter: Sorin Florea > Priority: Minor > Labels: easyfix, usability, windows > > Found a hardcoded path to {{lib/bootstrap}} in > [org.apache.nifi.NiFi|https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java#L3] > class when calling {{createBootstrapClassLoader()}} : > {code:java} > private static ClassLoader createBootstrapClassLoader() throws IOException { > //Get list of files in bootstrap folder > final List<URL> urls = new ArrayList<>(); > Files.list(Paths.get({color:red}_"lib/bootstrap"_{color})).forEach(p > -> { > try { > urls.add(p.toUri().toURL()); > } catch (final MalformedURLException mef) { > LOGGER.warn("Unable to load " + p.getFileName() + " due to " > + mef, mef); > } > }); > //Create the bootstrap classloader > return new URLClassLoader(urls.toArray(new URL[0]), > Thread.currentThread().getContextClassLoader()); > } > {code} > There are multiple places where the {{.\lib}} directory is defined: > * {{BOOTSTRAP_LIBS}} or {{%LIB_DIR%}} environment variables in {{nifi.sh}} or > {{run-nifi.bat}} > * {{lib.dir}} in {{bootstrap.conf}} is most likely it > * {{nifi.nar.library.directory}} or {{nifi.web.war.directory}} identify the > library folder but don't quite refer to the bootstrap > Perhaps using {{lib.dir}} in {{bootstrap.conf}} or create a new > {{lib.bootstrap.dir}} property. > Using different library folders would allow configuring multiple instances of > Nifi using the same resource. I managed changing the properties and > environment variables above to point to a common {{lib}} directory but this > harcoded prevented {{run-nifi.bat}} to run successfully. {{dump-nifi.bat}} > and {{status-nifi.bat}} ran without issue. -- This message was sent by Atlassian JIRA (v7.6.3#76005)