FAForever Forums
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Login
    The current pre-release of the client ("pioneer" in the version) is only compatible to itself. So you can only play with other testers. Please be aware!

    [Linux] can't start FA from FAF : java error, wrong run directory

    Scheduled Pinned Locked Moved FAF support (client and account issues)
    1 Posts 1 Posters 186 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B Offline
      Bouh
      last edited by

      Hi. I installed FA from steam with proton experimental, which is a little bit different from the wiki guide.

      I can start and run FA from steam with no problem (except for the video and menu that are very laggy) ; the game runs fine.

      But when I start it from FAF, I get two errors :

      java.lang.NullPointerException: Cannot invoke "java.lang.Process.onExit()" because "process" is null
      	at com.faforever.client.game.GameService.spawnTerminationListener(GameService.java:665)
      	at com.faforever.client.game.GameService.spawnTerminationListener(GameService.java:659)
      	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
      	at reactor.core.publisher.MonoToCompletableFuture.onNext(MonoToCompletableFuture.java:64)
      	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
      	at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:129)
      	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85)
      	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85)
      	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277)
      	at reactor.core.publisher.FluxReplay$UnboundedReplayBuffer.replayNormal(FluxReplay.java:602)
      	at reactor.core.publisher.FluxReplay$UnboundedReplayBuffer.replay(FluxReplay.java:709)
      	at reactor.core.publisher.FluxReplay$ReplayInner.request(FluxReplay.java:1711)
      	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
      	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2194)
      	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2068)
      	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178)
      	at reactor.core.publisher.FluxReplay.subscribeOrReturn(FluxReplay.java:1181)
      	at reactor.core.publisher.FluxReplay.subscribe(FluxReplay.java:1153)
      	at reactor.core.publisher.FluxAutoConnectFuseable.subscribe(FluxAutoConnectFuseable.java:61)
      	at reactor.core.publisher.Flux.subscribe(Flux.java:8526)
      	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82)
      	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onComplete(FluxFilterFuseable.java:171)
      	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onComplete(FluxPeekFuseable.java:595)
      	at reactor.core.publisher.FluxReplay$UnboundedReplayBuffer.replayNormal(FluxReplay.java:602)
      	at reactor.core.publisher.FluxReplay$UnboundedReplayBuffer.replay(FluxReplay.java:709)
      	at reactor.core.publisher.FluxReplay$ReplaySubscriber.onComplete(FluxReplay.java:1372)
      	at reactor.core.publisher.SerializedSubscriber.onComplete(SerializedSubscriber.java:146)
      	at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onComplete(FluxRetryWhen.java:200)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260)
      	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2058)
      	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260)
      	at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:294)
      	at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:230)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribeInner(MonoFlatMapMany.java:150)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onSubscribe(MonoFlatMapMany.java:245)
      	at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:165)
      	at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:87)
      	at reactor.core.publisher.Flux.subscribe(Flux.java:8526)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:195)
      	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
      	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151)
      	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
      	at reactor.core.publisher.MonoReduce$ReduceSubscriber.onComplete(MonoReduce.java:139)
      	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
      	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
      	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)
      	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
      	at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:400)
      	at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:419)
      	at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:473)
      	at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:702)
      	at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
      	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
      	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336)
      	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308)
      	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
      	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1373)
      	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1236)
      	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285)
      	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:519)
      	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:458)
      	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:280)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
      	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
      	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
      	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499)
      	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397)
      	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
      	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
      	at java.base/java.lang.Thread.run(Thread.java:833)
      
      

      Not very informative, but the second one is better :

      java.io.IOException: Cannot run program "~/Games/FAF/run" (in directory "/home/bouh/.faforever/bin"): error=2, Aucun fichier ou dossier de ce type
      	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
      	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
      	at com.faforever.client.fa.ForgedAllianceService.launch(ForgedAllianceService.java:151)
      	at com.faforever.client.fa.ForgedAllianceService.startGameOnline(ForgedAllianceService.java:86)
      	at com.faforever.client.game.GameService.lambda$startGame$41(GameService.java:624)
      	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
      	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
      	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
      	at reactor.core.publisher.MonoToCompletableFuture.onNext(MonoToCompletableFuture.java:64)
      	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
      	at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:129)
      	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85)
      	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85)
      	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onComplete(FluxPeekFuseable.java:277)
      	at reactor.core.publisher.FluxReplay$UnboundedReplayBuffer.replayNormal(FluxReplay.java:602)
      	at reactor.core.publisher.FluxReplay$UnboundedReplayBuffer.replay(FluxReplay.java:709)
      	at reactor.core.publisher.FluxReplay$ReplayInner.request(FluxReplay.java:1711)
      	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
      	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2194)
      	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2068)
      	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onSubscribe(FluxPeekFuseable.java:178)
      	at reactor.core.publisher.FluxReplay.subscribeOrReturn(FluxReplay.java:1181)
      	at reactor.core.publisher.FluxReplay.subscribe(FluxReplay.java:1153)
      	at reactor.core.publisher.FluxAutoConnectFuseable.subscribe(FluxAutoConnectFuseable.java:61)
      	at reactor.core.publisher.Flux.subscribe(Flux.java:8526)
      	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:82)
      	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onComplete(FluxFilterFuseable.java:171)
      	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onComplete(FluxPeekFuseable.java:595)
      	at reactor.core.publisher.FluxReplay$UnboundedReplayBuffer.replayNormal(FluxReplay.java:602)
      	at reactor.core.publisher.FluxReplay$UnboundedReplayBuffer.replay(FluxReplay.java:709)
      	at reactor.core.publisher.FluxReplay$ReplaySubscriber.onComplete(FluxReplay.java:1372)
      	at reactor.core.publisher.SerializedSubscriber.onComplete(SerializedSubscriber.java:146)
      	at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onComplete(FluxRetryWhen.java:200)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260)
      	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2058)
      	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:260)
      	at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:294)
      	at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:230)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribeInner(MonoFlatMapMany.java:150)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onSubscribe(MonoFlatMapMany.java:245)
      	at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:165)
      	at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:87)
      	at reactor.core.publisher.Flux.subscribe(Flux.java:8526)
      	at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:195)
      	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
      	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151)
      	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816)
      	at reactor.core.publisher.MonoReduce$ReduceSubscriber.onComplete(MonoReduce.java:139)
      	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
      	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
      	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)
      	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
      	at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:400)
      	at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:419)
      	at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:473)
      	at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:702)
      	at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:113)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
      	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
      	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336)
      	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308)
      	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
      	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1373)
      	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1236)
      	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1285)
      	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:519)
      	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:458)
      	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:280)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
      	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
      	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
      	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
      	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499)
      	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397)
      	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
      	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
      	at java.base/java.lang.Thread.run(Thread.java:833)
      Caused by: java.io.IOException: error=2, Aucun fichier ou dossier de ce type
      	at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
      	at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:314)
      	at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
      	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
      	... 87 more
      
      

      The important line is here :

      Client Version: 2022.11.0
      java.io.IOException: Cannot run program "~/Games/FAF/run" (in directory "/home/bouh/.faforever/bin"): error=2, Aucun fichier ou dossier de ce type
      

      I think the run directory is wrong, but I don't know which directory it should be. Can anyone help me with this ?

      1 Reply Last reply Reply Quote 0
      • First post
        Last post