Search code examples
javamavenherokubotstwitter4j

Twitter bot, java, Heroku. "State changed from up to crashed"


I have a simple Java Twitter bot built with twitter4j. I just need to have one Java class that runs nonstop and it should all be well. It runs fine locally, but is unable to run on Heroku for some reason.

Here's what it says when attempting to run:

2019-05-07T18:54:50.555626+00:00 heroku[worker.1]: Starting process with command `java -cp src/BotLottery.java`

2019-05-07T18:54:51.243272+00:00 heroku[worker.1]: State changed from starting to up

2019-05-07T18:54:52.269893+00:00 heroku[worker.1]: Process exited with status 1

2019-05-07T18:54:52.294324+00:00 heroku[worker.1]: State changed from up to crashed

2019-05-07T18:54:52.116218+00:00 app[worker.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8 

2019-05-07T18:54:52.217204+00:00 app[worker.1]: Usage: java [-options] class [args...]

2019-05-07T18:54:52.217208+00:00 app[worker.1]:            (to execute a class)

2019-05-07T18:54:52.217210+00:00 app[worker.1]:    or  java [-options] -jar jarfile [args...]

2019-05-07T18:54:52.217212+00:00 app[worker.1]:            (to execute a jar file)

2019-05-07T18:54:52.217213+00:00 app[worker.1]: where options include:

2019-05-07T18:54:52.217215+00:00 app[worker.1]:     -d32      use a 32-bit data model if available

2019-05-07T18:54:52.217216+00:00 app[worker.1]:     -d64      use a 64-bit 
data model if available

2019-05-07T18:54:52.217218+00:00 app[worker.1]:     -server   to select the "server" VM

2019-05-07T18:54:52.217220+00:00 app[worker.1]:                   The default VM is server,

2019-05-07T18:54:52.217224+00:00 app[worker.1]:                   because you are running on a server-class machine.

2019-05-07T18:54:52.217226+00:00 app[worker.1]: 

2019-05-07T18:54:52.217227+00:00 app[worker.1]: 

2019-05-07T18:54:52.217229+00:00 app[worker.1]:     -cp <class search path of directories and zip/jar files>

2019-05-07T18:54:52.217230+00:00 app[worker.1]:     -classpath <class search path of directories and zip/jar files>

2019-05-07T18:54:52.217232+00:00 app[worker.1]:                   A : separated list of directories, JAR archives,

2019-05-07T18:54:52.217233+00:00 app[worker.1]:                   and ZIP archives to search for class files.

2019-05-07T18:54:52.217235+00:00 app[worker.1]:     -D<name>=<value>

2019-05-07T18:54:52.217237+00:00 app[worker.1]:                   set a system property

2019-05-07T18:54:52.217239+00:00 app[worker.1]:     -verbose:[class|gc|jni]

2019-05-07T18:54:52.217240+00:00 app[worker.1]:                   enable verbose output

2019-05-07T18:54:52.217242+00:00 app[worker.1]:     -version      print 
product version and exit

2019-05-07T18:54:52.217244+00:00 app[worker.1]:     -version:<value>

2019-05-07T18:54:52.217245+00:00 app[worker.1]:                   Warning: 
this feature is deprecated and will be removed

2019-05-07T18:54:52.217247+00:00 app[worker.1]:                   in a future release.

2019-05-07T18:54:52.217249+00:00 app[worker.1]:                   require the specified version to run

2019-05-07T18:54:52.217250+00:00 app[worker.1]:     -showversion  print product version and continue

2019-05-07T18:54:52.217252+00:00 app[worker.1]:     -jre-restrict-search | -no-jre-restrict-search

2019-05-07T18:54:52.217253+00:00 app[worker.1]:                   Warning: this feature is deprecated and will be removed

2019-05-07T18:54:52.217255+00:00 app[worker.1]:                   in a future release.

2019-05-07T18:54:52.217256+00:00 app[worker.1]:                   include/exclude user private JREs in the version search

2019-05-07T18:54:52.217258+00:00 app[worker.1]:     -? -help      print this help message

2019-05-07T18:54:52.217259+00:00 app[worker.1]:     -X            print help on non-standard options

2019-05-07T18:54:52.217261+00:00 app[worker.1]:     -ea[:<packagename>...|:
<classname>]

2019-05-07T18:54:52.217263+00:00 app[worker.1]:     -enableassertions[:
<packagename>...|:<classname>]

2019-05-07T18:54:52.217265+00:00 app[worker.1]:                   enable 
assertions with specified granularity

2019-05-07T18:54:52.217266+00:00 app[worker.1]:     -da[:<packagename>...|:
<classname>]

2019-05-07T18:54:52.217268+00:00 app[worker.1]:     -disableassertions[:
<packagename>...|:<classname>]

2019-05-07T18:54:52.217269+00:00 app[worker.1]:                   disable 
assertions with specified granularity

2019-05-07T18:54:52.217271+00:00 app[worker.1]:     -esa | -
enablesystemassertions

2019-05-07T18:54:52.217273+00:00 app[worker.1]:                   enable 
system assertions

2019-05-07T18:54:52.217274+00:00 app[worker.1]:     -dsa | -
disablesystemassertions

2019-05-07T18:54:52.217276+00:00 app[worker.1]:                   disable 
system assertions

2019-05-07T18:54:52.217277+00:00 app[worker.1]:     -agentlib:<libname>[=
<options>]

2019-05-07T18:54:52.217279+00:00 app[worker.1]:                   load native 
agent library <libname>, e.g. -agentlib:hprof

2019-05-07T18:54:52.217281+00:00 app[worker.1]:                   see also, -
agentlib:jdwp=help and -agentlib:hprof=help
2019-05-07T18:54:52.217282+00:00 app[worker.1]:     -agentpath:<pathname>[=

<options>]

2019-05-07T18:54:52.217284+00:00 app[worker.1]:                   load native 
agent library by full pathname

2019-05-07T18:54:52.217285+00:00 app[worker.1]:     -javaagent:<jarpath>[=
<options>]

2019-05-07T18:54:52.217287+00:00 app[worker.1]:                   load Java 
programming language agent, see java.lang.instrument

2019-05-07T18:54:52.217289+00:00 app[worker.1]:     -splash:<imagepath>

2019-05-07T18:54:52.217291+00:00 app[worker.1]:                   show splash 
screen with specified image

2019-05-07T18:54:52.217298+00:00 app[worker.1]: See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.

Solution

  • Starting process with command java -cp src/BotLottery.java

    That doesn't look right to me. The classpath is empty. And it should be a .jar or a .class file. Not a .java file.