Skip to content

getNodeJsLocation fails with java.io.IOException: failed to create directory C:\Program Files\eclipse\rcp-2024-12\.node\node-v22.11.0-win-x64 #1816

@xcheffo

Description

@xcheffo

I see no way to override the paths where the embedded NodeJS is extracted. I see it's possible to specify path to a local installation of NodeJS and that the embedder is generally able to pick up a good preinstalled version of NodeJS if it fails to extract its own, but still I'd like to be able to use the embedded on Windows.

More details:
I am developing an Eclipse RCP application which needs to launch own NodeJS server. My Eclipse version is rcp-2024-12 installed in Program Files on Windows. Both Eclipse and the RCP application are run using Eclipse Adoptium jdk-21.0.6.7-hotspot. The embedder plugin is org.eclipse.platform_4.34.0_100354427_win32_win32_x86_64\plugins\org.eclipse.wildwebdeveloper.embedder.node_1.0.7.202411181924.jar

When using the wildweb developer node embedder on Windows, I get the following exception:
java.io.IOException: failed to create directory C:\Program Files\eclipse\rcp-2024-12.node\node-v22.11.0-win-x64
at org.eclipse.wildwebdeveloper.embedder.node.CompressUtils.extractArchive(CompressUtils.java:81)
at org.eclipse.wildwebdeveloper.embedder.node.CompressUtils.unarchive(CompressUtils.java:52)
at org.eclipse.wildwebdeveloper.embedder.node.NodeJSManager.getNodeJsLocation(NodeJSManager.java:84)
at my.own.code
........

I did a bit of testing and indeed
var directory = new File("C:\\Program Files\\eclipse\\rcp-2024-12\\.node"); System.out.println(directory.exists() && directory.isDirectory() && directory.canWrite() && directory.canExecute());
returns true when run with the same user and permissions as the application.

The permissions for the .node directory are shown on the screenshot below:
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions