V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
asd999cxcx
V2EX  ›  JetBrains

看起来 Toolbox App 支持远程开发了?

  •  
  •   asd999cxcx · 64 天前 · 1257 次点击
    这是一个创建于 64 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前正在尝试,这是官方博客地址 https://blog.jetbrains.com/toolbox-app/2025/04/toolbox-app-2-6-is-here-with-remote-development-support/
    看描述像是在远程机器启动一个 IDE 实例然后进行开发?不知道环境是怎么算。不过算是一个好消息吧,总算是向远程开发迈了正确的一步,开始追赶落后的内容。
    13 条回复    2025-04-24 20:49:28 +08:00
    Stevenv
        1
    Stevenv  
       64 天前
    Toolbox App 现在装 2.3 也会更新到 2.6.。 感觉强制更新了
    springz
        2
    springz  
       63 天前
    被 vscode 打的找不到北了吧,vscode 那个远程真的是无缝体验。如果能达到 vscode 的水平,我应该会继续付费。
    springz
        3
    springz  
       63 天前
    别试了,还是老一套,两个撕裂的环境,不同操作系统字体都不一样。
    springz
        4
    springz  
       63 天前
    和老的 gateway 没有区别。
    asd999cxcx
        5
    asd999cxcx  
    OP
       63 天前
    @springz 我原本打算远程到我的小主机上试试,不知道是不是我小主机上的 toolbox 没登录账户的原因,ssh 过去的时候一直提示 ssh 部署失败
    zfjdif
        6
    zfjdif  
       63 天前
    感觉 toolbox 的连接比 gateway 稳定?不知道是不是错觉,使用了几天,感觉比 gateway 体验好。
    - ctrl + enter 可以执行 SQL 了
    - 我这边基本没有遇到卡顿和报错
    - 重启 IDE 不会无响应了,能够成功重启
    我这边主要是用的是 PyCharm 和 WebStorm
    asd999cxcx
        7
    asd999cxcx  
    OP
       63 天前
    @zfjdif 为啥我一直提示 ssh 部署失败...你是咋操作的?
    zfjdif
        8
    zfjdif  
       62 天前
    @asd999cxcx 就正常操作🥲,我一直在用 gateway
    asd999cxcx
        9
    asd999cxcx  
    OP
       62 天前
    @zfjdif 远程机器是咋配置的只装了个 toolbox 吗😢
    zfjdif
        10
    zfjdif  
       61 天前
    @asd999cxcx 有报错吗,贴个日志
    asd999cxcx
        11
    asd999cxcx  
    OP
       58 天前
    @zfjdif 这是最新的报错记录 Log:
    ```

    2.6.0.40632 93314 2025-04-21 22:35:00.708 INFO cher-worker-5 SshToolboxAgentDeployer Plugin ssh > [email protected] IpcInstanceFactory REMOTE-LOG: pid: 27912
    2.6.0.40632 93314 2025-04-21 22:35:00.709 INFO cher-worker-5 SshToolboxAgentDeployer Plugin ssh > [email protected] MainInstance$Companion REMOTE-LOG: C:\Users\scw\AppData\Local\JetBrains\Toolbox\cache\ipc: binding
    2.6.0.40632 93314 2025-04-21 22:35:00.724 INFO cher-worker-5 SshToolboxAgentDeployer Plugin ssh > [email protected] MainInstance$Companion REMOTE-LOG: C:\Users\scw\AppData\Local\JetBrains\Toolbox\cache\ipc: already in use (Address already in use: bind)
    2.6.0.40632 93314 2025-04-21 22:35:00.724 INFO cher-worker-5 SshToolboxAgentDeployer Plugin ssh > [email protected] IpcInstanceFactory REMOTE-LOG: checking if the main instance is alive
    2.6.0.40632 93314 2025-04-21 22:35:00.834 ERROR cher-worker-5 SshToolboxAgentDeployer Plugin ssh > [email protected] MainKt REMOTE-LOG: : java.lang.IllegalStateException: java.lang.IllegalStateException: main instance is alive (pid=5088), cannot bind twice
    at com.jetbrains.toolbox.ipc.IpcInstanceFactory.main(IpcInstanceFactory.kt:56)
    at com.jetbrains.toolbox.ipc.IpcInstanceFactory$main$1.invokeSuspend(IpcInstanceFactory.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:233)
    at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:152)
    at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
    at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core(CancellableContinuationImpl.kt:504)
    at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default(CancellableContinuationImpl.kt:493)
    at kotlinx.coroutines.CancellableContinuationImpl.resumeUndispatched(CancellableContinuationImpl.kt:596)
    at kotlinx.coroutines.EventLoopImplBase$DelayedResumeTask.run(EventLoop.common.kt:497)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
    at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:47)
    at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
    at com.jetbrains.toolbox.MainKt.mainByApp(main.kt:120)
    at com.jetbrains.toolbox.MainKt.main(main.kt:140)
    at com.jetbrains.toolbox.common.logging.StructuredLogging.tryLogFromStructuredLoggingOutput(StructuredLogging.kt:46)
    at com.jetbrains.toolbox.gateway.deploy.ssh.SshToolboxAgentDeployer$startAgent$deployEverything$3$1.invokeSuspend(SshToolboxAgentDeployer.kt:216)
    at com.jetbrains.toolbox.gateway.deploy.ssh.SshToolboxAgentDeployer$startAgent$deployEverything$3$1.invoke(SshToolboxAgentDeployer.kt)
    at com.jetbrains.toolbox.gateway.deploy.ssh.SshToolboxAgentDeployer$startAgent$deployEverything$3$1.invoke(SshToolboxAgentDeployer.kt)
    at kotlinx.coroutines.flow.FlowKt__ReduceKt$firstOrNull$$inlined$collectWhile$2.emit(Limit.kt:132)
    at kotlinx.coroutines.flow.internal.SafeCollectorKt$emitFun$1.invoke(SafeCollector.kt:11)
    at kotlinx.coroutines.flow.internal.SafeCollectorKt$emitFun$1.invoke(SafeCollector.kt:11)
    at kotlinx.coroutines.flow.internal.SafeCollector.emit(SafeCollector.kt:113)
    at kotlinx.coroutines.flow.internal.SafeCollector.emit(SafeCollector.kt:82)
    at com.jetbrains.toolbox.common.coroutines.flow.FinishMarkedSharedFlow$getFlow$1.invokeSuspend(FinishMarkedSharedFlow.kt:26)
    at com.jetbrains.toolbox.common.coroutines.flow.FinishMarkedSharedFlow$getFlow$1.invoke(FinishMarkedSharedFlow.kt)
    at com.jetbrains.toolbox.common.coroutines.flow.FinishMarkedSharedFlow$getFlow$1.invoke(FinishMarkedSharedFlow.kt)
    at kotlinx.coroutines.flow.FlowKt__LimitKt$transformWhile$1$invokeSuspend$$inlined$collectWhile$1.emit(Limit.kt:132)
    at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(SharedFlow.kt:397)
    at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(SharedFlow.kt)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:829)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
    2.6.0.40632 93314 2025-04-21 22:35:00.909 INFO 93694 stdout InputStreamRepeatableFlow Plugin ssh > id 93694 stdout: finishing listening for input
    2.6.0.40632 93314 2025-04-21 22:35:00.914 INFO 93694 stderr InputStreamRepeatableFlow Plugin ssh > id 93694 stderr: finishing listening for input
    2.6.0.40632 93314 2025-04-21 22:35:00.915 ERROR cher-worker-4 ractEnvironmentConnection Plugin ssh > Exception during deployment in environment: (ssh) [email protected]: com.jetbrains.toolbox.gateway.error.DeployError$SshDeployFailed: SSH deploy failed
    at com.jetbrains.toolbox.gateway.deploy.ssh.SshToolboxAgentDeployer.startAgent$deployEverything$errorFromExitCode(SshToolboxAgentDeployer.kt:154)
    at com.jetbrains.toolbox.gateway.deploy.ssh.SshToolboxAgentDeployer.access$startAgent$deployEverything$errorFromExitCode(SshToolboxAgentDeployer.kt:52)
    at com.jetbrains.toolbox.gateway.deploy.ssh.SshToolboxAgentDeployer$startAgent$deployEverything$3.invokeSuspend(SshToolboxAgentDeployer.kt:313)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:829)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
    2.6.0.40632 93314 2025-04-21 22:35:04.128 INFO -EventQueue-0 UtilKt Available screens java.awt.Rectangle[x=0,y=0,width=1728,height=1117]
    2.6.0.40632 93314 2025-04-21 22:35:04.128 INFO -EventQueue-0 UtilKt Display size java.awt.Rectangle[x=0,y=0,width=1728,height=1117] with insets java.awt.Insets[top=38,left=0,bottom=76,right=0] for Point(x=1437, y=37)
    2.6.0.40632 93314 2025-04-21 22:35:04.128 INFO -EventQueue-0 TrayWidget Creating new widget
    2.6.0.40632 93314 2025-04-21 22:35:04.128 INFO -EventQueue-0 ComposeWindowManager Show window request. Window: Toolbox, type: WINDOW
    2.6.0.40632 93314 2025-04-21 22:35:04.190 INFO -EventQueue-0 DialogHostKt Received dialog: null
    2.6.0.40632 93314 2025-04-21 22:35:04.190 INFO cher-worker-3 DiskUsageManagerImpl Calculating directory size at /Users/scw/Library/Caches/JetBrains/Toolbox/download
    2.6.0.40632 93314 2025-04-21 22:35:04.190 INFO cher-worker-3 DiskUsageManagerImpl Calculating directory size at /Users/scw/Library/Caches/JetBrains/Toolbox/download done: 298 MB
    2.6.0.40632 93314 2025-04-21 22:35:04.195 INFO cher-worker-1 ApplicationManagerImpl Refreshing feed on window open
    2.6.0.40632 93314 2025-04-21 22:35:04.195 INFO cher-worker-6 GitpodFlexProvider Plugin io.gitpod.flex.toolbox > Gitpod Plugin visibility state changed: com.jetbrains.toolbox.api.remoteDev.ProviderVisibilityState@99e6
    2.6.0.40632 93314 2025-04-21 22:35:05.274 INFO cher-worker-8 GitpodFlexProvider Plugin io.gitpod.flex.toolbox > Gitpod Plugin visibility state changed: com.jetbrains.toolbox.api.remoteDev.ProviderVisibilityState@9aa0
    scw@scwdeMacBook-Pro Toolbox %

    ```
    asd999cxcx
        12
    asd999cxcx  
    OP
       58 天前
    界面上的报错内容就是 SSH Deploy failed
    Wilson233
        13
    Wilson233  
       56 天前
    现在 idea 远程开发的时候,每打开一个项目还是都要重新安装插件吗?之前试了直接被这点劝退
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2853 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 13:31 · PVG 21:31 · LAX 06:31 · JFK 09:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.