JavaCAN
A simple JNI wrapper for the socketcan API provided by the Linux kernel. As it is wrapping a Linux Kernel API, it is intended for use on Linux only.
File Explorer
Download Latest Version (.zip)- gradle.yml
- scorecard.yml
- FUNDING.yml
- Constants.kt
- tel.schich.javacan.convention.arch-detect.gradle.kts
- tel.schich.javacan.convention.base.gradle.kts
- tel.schich.javacan.convention.native.gradle.kts
- tel.schich.javacan.convention.published.gradle.kts
- tel.schich.javacan.convention.root.gradle.kts
- build.gradle.kts
- settings.gradle.kts
- bcm.h
- error.h
- isotp.h
- j1939.h
- netlink.h
- raw.h
- can.h
- common.c
- common.h
- javacan_bcm.c
- javacan_bufferhelper.c
- javacan_isotp.c
- javacan_j1939.c
- javacan_networkdevice.c
- javacan_raw.c
- javacan_socketcan.c
- CanSocketOption.java
- package-info.java
- LinuxNativeOperationException.java
- LinuxNetworkDevice.java
- LinuxSocketOptionHandler.java
- package-info.java
- UnixFileDescriptor.java
- NativeChannel.java
- package-info.java
- Platform.java
- UnsupportedPlatformException.java
- BufferHelper.java
- CanUtils.java
- EvictingQueue.java
- package-info.java
- AbstractCanChannel.java
- BcmCanChannel.java
- BcmFlag.java
- BcmMessage.java
- BcmOpcode.java
- CanChannels.java
- CanFilter.java
- CanFrame.java
- CanId.java
- CanSocketOptions.java
- ImmutableJ1939Address.java
- ImmutableJ1939ReceiveMessageHeader.java
- ImmutableRawReceiveMessageHeader.java
- IsotpAddress.java
- IsotpCanChannel.java
- IsotpCanChannelImpl.java
- IsotpCanSocketOptions.java
- IsotpFlowControlOptions.java
- IsotpLinkLayerOptions.java
- IsotpOptions.java
- IsotpSocketAddress.java
- J1939Address.java
- J1939AddressBuffer.java
- J1939CanChannel.java
- J1939CanChannelImpl.java
- J1939CanSocketOptions.java
- J1939Filter.java
- J1939ReceiveMessageHeader.java
- J1939ReceiveMessageHeaderBuffer.java
- J1939Utils.java
- JavaCAN.java
- NetworkDevice.java
- package-info.java
- RawCanChannel.java
- RawCanChannelImpl.java
- RawReceiveMessageHeader.java
- RawReceiveMessageHeaderBuffer.java
- ReceiveMessageHeader.java
- SocketCAN.java
- IsotpCanSocketOptionsTest.java
- LinuxNativeOperationExceptionTest.java
- BcmCanSocketTest.java
- J1939CanSocketTest.java
- J1939UtilsTest.java
- RawCanSocketTest.java
- CanTestHelper.java
- TestHelper.java
- logback-test.xml
- build.gradle.kts
- CMakeLists.txt
- JavaCANAutoDetect.java
- build.gradle.kts
- javacan_epoll.c
- EPoll.java
- EPollException.java
- EPollRegistration.java
- EPollSelector.java
- package-info.java
- IOEvent.java
- IOSelector.java
- package-info.java
- SelectorRegistration.java
- CanBroker.java
- CopyingFrameHandlerProxy.java
- CopyingMessageHandlerProxy.java
- EventLoop.java
- FrameHandler.java
- IsotpListener.java
- MessageHandler.java
- PollExceptionHandler.java
- PollFunction.java
- PollingThread.java
- package-info.java
- EPollSelectorTest.java
- CanBrokerTest.java
- IsotpListenerTest.java
- build.gradle.kts
- CMakeLists.txt
- EPollAutoDetect.java
- build.gradle.kts
- gradle-wrapper.jar
- gradle-wrapper.properties
- gradle-daemon-jvm.properties
- libs.versions.toml
- CanDumpConverter.java
- package-info.java
- build.gradle.kts
- .clang-format
- .editorconfig
- .gitignore
- .gitmodules
- build.gradle.kts
- CMakeLists.txt
- common.cmake
- gradle.properties
- gradlew
- gradlew.bat
- LICENSE
- README.md
- renovate.json5
- settings.gradle.kts
- setup-vcan.sh
- TROUBLESHOOTING.md
# Installation Guide
1. Get the code
git clone https://github.com/pschichtel/JavaCAN
Downloads the entire project code from GitHub to your computer.
cd JavaCAN
Moves into the project folder you just downloaded.
2. CMake
Medium RecommendedPrerequisites
mkdir build && cd build
Creates a folder to hold the build output and moves into it.
cmake ..
Analyzes the source code and generates build configuration files (must be run inside the build folder).
make
Compiles the code based on the generated build configuration to produce an executable.
Check that an executable was created inside the build folder, then run it directly (e.g. ./build/app_name).
3. Gradle (Java/Kotlin)
MediumPrerequisites
- Git Needed to download the project code from GitHub.
- JDK (Java) Required to build and run Java/Kotlin projects.
- Gradle If the repo includes gradlew (Gradle Wrapper), you don't need to install Gradle separately.
./gradlew compileNativeAll
Builds the project using Gradle.
A BUILD SUCCESSFUL message means it worked. The output is created under build/.
Pulled directly from this repo's README.
// repository documentation
Was this content helpful?
(0 ratings)
