My app uses a Java 11-based tool to run in the background. My ‘packages.txt’ used to have
openjdk-11-jdk and the app deploys perfectly with Java 11 just about a week ago. Upon checking today, my app doesn’t work anymore because apparently the streamlit terminal now outputs:
E: Unable to locate package openjdk-11-jdk
I have tried searching for solutions.
default-jre essentially installs Java 17 which is not of use to me.
The operating system in Streamlit Cloud is Debian Stable, that dropped Java 11 in June 2023.
Thanks for the explanation. How can I get a workaround for this?
Sorry if I sound dumb: Can I request the admins to add Java 11 as part of the server by doing
add-apt-repository ppa:linuxuprising/java as a default to the server’s operating system?
Sorry I have no idea.
Probably your best bet is finding a scriptable method of installation then doesn’t require root access. Or maybe updating your java tool would be less work than that.
Thank you so much for your idea. I solved this problem by
- changing my
packages.txt to have
- manually downloading JAVA 11 using wget and extracting it through
- setting JAVA_HOME and java in PATH environment through
- caching the function using st.cache_data or st.cache_resource so that the whole procedure run only once
Now, I essentially have JAVA 11. Hope this helps anyone who wants to install a dependency not within apt install.
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.